当我输入另一个表格时,如何销毁Params GET或POST?

时间:2012-12-01 19:18:21

标签: php

<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>

我有2个表格。每当我在form4中输入'iddetails'时,我想删除Form3中的$_GET['page']。 我尝试使用unset($_GET['page']);我可以看到它使用调试器跟踪&amp;删除了params'页面'。 但是当我再次尝试使用Form4输入时,$_GET['page']仍然存在并且没有被完全删除。 那么如果我输入'iddetails'form4,如何删除form3中的Params'Page'?

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

2 个答案:

答案 0 :(得分: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']设置好后,您可以在代码中简单地重复它?

答案 1 :(得分:0)

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

此外,您不需要POST就可以摆脱GET。此外,如果您不需要$ _GET中的键,请在使用后取消设置。