所以基本上我的路由器看起来像:
/index.php?page=/my/page.php
我根本无法改变它。
我有一个必须是获取请求的表单......有一种简单的方法可以执行以下操作:
<form id="frmTaxTypeReport" method="get" action="/index.php?page=/my/page.php">
每次尝试,我都会失去page=/my/page.php
如果我使用隐藏,我会得到:
page=%2Findex.php%3Fmm%3D0%26page%3D%2Freports%2FtaxReport.php
似乎逃脱了它。
答案 0 :(得分:4)
为什么会这样?
将其放入隐藏的字段
<form id="frmTaxTypeReport" method="get" action="/index.php">
<input name="page" type="hidden" value="/my/page.php"/>
... other fields ...
</form>
它将与Form
一起发布使用$_GET['page']
答案 1 :(得分:2)
您正在使用GET
请求。 GET
请求使用URL参数来传递数据。这些参数将混合或覆盖您传递的页面参数。要解决此问题,您可以使用POST
或将页面参数作为表单中的值传递,但我会推荐前者。
也就是说,如果您使用隐藏字段,服务器将没有明显的区别:
<input type="hidden" name="page" value="/my/page.php"/>