【问题标题】:php: How to resubmit (and add to) original $_REQUEST variablesphp:如何重新提交(并添加到)原始 $_REQUEST 变量
【发布时间】:2010-11-19 06:36:41
【问题描述】:

jp.php?q=dogjp.php?h=123&f=14 等。有没有更好的方法来重新提交参数(除了循环 q,h,f,...),例如添加 '&action=update'? 这是一个尝试循环的版本:

$req_str="";
foreach($_REQUEST as $req_k => $req_v){
$req_str.=$req_k."=".$req_v."&";
}
echo "<a href=jp.php?".$req_str."&action=update >UPDATE</a>";

更新

我认为$_SERVER['QUERY_STRING'] 是我要找的。​​p>

echo "<a href=jp.php?".$_SERVER['QUERY_STRING']."&action=update >UPDATE</a>";

不确定,如果变量是通过“POST”而不是“GET”提交的,这是否可行?

【问题讨论】:

    标签: php variables post get request


    【解决方案1】:
    $query = http_build_query(array_merge($_GET, array('action' => 'update')));
    printf('<a href="jp.php?%s">Update</a>', $query);
    

    【讨论】:

    • 见上图:$_SERVER['QUERY_STRING']
    • @ajo 见上文:http_build_query。这样您就可以确保参数只存在一次。如果$_SERVER['QUERY_STRING'] 中已经存在action 参数怎么办?
    • 如果已经有 '&action=...',如果例如 'jp.php?action=stop&q=1&action=go' 是取第一个值还是第二个值?
    • @ajo 这就是array_merge 的作用。第二个array('action' =&gt; ...) 将覆盖action 可能已经存在于$_GET 中的任何action 键。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-06-04
    • 2014-01-22
    • 1970-01-01
    • 2016-11-07
    • 2018-08-15
    • 2021-02-15
    相关资源
    最近更新 更多