使用GET方法单击表单中的提交按钮后,新变量将覆盖旧变量:
提交前:
www.example.com/?a=product
a - 表示提交后的页面:
www.example.com/?brand=1&maxprice=200
因此重新加载页面的可变消失并将我重定向到主页,如果没有建立值,这是默认情况。
我在表单操作上尝试了几个选项,例如:
?a=product // lead me to the result I showed above
?a=product& // same result as above
a=product // leads to www.example.com/a=product... unknown page
答案 0 :(得分:1)
我不确定你为什么要这样做,但你可以在表单中添加一个名为'a'并且值为$ _GET ['a']的隐藏输入元素,这样'a'就是用这样的形式发布:
<input type="hidden" name="a" value="<?=htmlspecialchars($_GET['a']);?>"/>
答案 1 :(得分:1)
如果你有PHP 5.4,请使用
$encoding="UTF-8"; // Or whatever encoding you are using
<input type="hidden" name="a" value="<?=htmlspecialchars($_GET['a'],ENT_XML1 | ENT_COMPAT,$encoding);?>"/>
否则只需使用没有ENT_XML1 |的htmlspecialchars ENT_COMPAT和“and。
上的str_replace$encoding="UTF-8"; // Or whatever encoding you are using
$v=$_GET["a"];
$v=str_replace("\"","",$v);
$v=str_replace("\\","",$v);
$v=htmlspecialchars($v,ENT_QUOTES,$encding);
echo '<input type="hidden" name="a" value="' . $v . '"/>'
对于foreach循环,请查看其他答案。
答案 2 :(得分:0)
一个简单的解决方案是对表单使用POST方法,然后在表单提交的页面上使用$ _POST。你的$ _GET应该仍然有用。