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>

私は2フォームを持っています。$_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

両方のフォームが同じ Web ページにある場合、form4 のページを更新するたびに、要素「page」の値がサーバー側変数 $pageNumView から取得されるため、form3 の $_GET も設定されます。

さらに、GET を取り除くためだけに POST を使用する必要はありません。また、$_GET でキーが必要ない場合は、使用後に設定を解除してください。

于 2012-12-01T19:33:53.130 に答える