1
<form id="form3" name="form3" method="get" action="">
<tr>
<td align="left" ><input name="page" type="text" id="page" size="5" value="<?php echo $pageNumView; ?>"/></td> 
</tr>
</form>
<form id="form4" name="form4" method="post" action="">
<tr>
<td width="84%"><input name="iddetails" type="text" id="iddetails" size="20" value="<?php echo $rows['product_id']; ?>"/> </td> 
</tr>
</form>

我有两种形式。$_GET['page']每当我在 form4 中输入“iddetails”时,我都想在 Form3 中删除。我尝试使用unset($_GET['page']);我可以看到它使用调试器跟踪并删除了参数“页面”。但是当我再次尝试使用 Form4 Input 时,$_GET['page']它仍然存在并且没有被完全删除。那么如果我在 'iddetails' form4 中输入,如何删除 form3 中的 Params 'Page'?

我已阅读有关此 POST-REDIRECT-GET 解决方案的信息。

4

2 回答 2

0

您需要设置操作,以便不设置 $_GET 值:

 <form id="form3" name="form3" method="get" action="">
<tr>
<td align="left" ><input name="page" type="text" id="page" size="5" value="<?php echo $pageNumView; ?>"/></td> 
</tr>
</form>
<form id="form4" name="form4" method="post" action="yourform.php">
<tr>
<td width="84%"><input name="iddetails" type="text" id="iddetails" size="20" value="<?php echo $rows['product_id']; ?>"/> </td> 
</tr>
</form>

或者这样做:

if( isset( $_POST['iddetails']) && isset( $_GET['page'])){
   $_GET['page'] = 0; //Set it to whatever you like.
}

我的问题是:为什么设置了 $_GET['page'] 会出现问题?设置 $_POST['iddetails'] 时,您可以在代码中简单地忽略它吗?

于 2012-12-01T19:32:14.430 回答
0

如果两个表单都在同一个网页上,则每次刷新 form4 的页面时,form3 的 $_GET 也会被设置,因为元素“page”的值来自服务器端变量 $pageNumView。

此外,您不需要仅仅为了摆脱 GET 就拥有 POST。此外,如果您不需要 $_GET 中的密钥,只需在使用后取消设置即可。

于 2012-12-01T19:33:53.130 回答