1

フォームを送信してページをリロードした後、ステータスをチェックまたはチェック解除したままにするチェックボックスを備えたこのhtmlフォームがあります。

<form method="post" action="">
<input type="checkbox" name="keyword1" value="keyword1" <?php if(isset($_POST['keyword1'])) echo "checked='checked'"; ?> />keyword1
<input type="checkbox" name="keyword2" value="keyword2" <?php if(isset($_POST['keyword2'])) echo "checked='checked'"; ?> />keyword2
<input type="checkbox" name="keyword2" value="keyword3" <?php if(isset($_POST['keyword2'])) echo "checked='checked'"; ?> />keyword3
<input type="submit"  />
</form>

問題は、最初のページの読み込み時にチェックボックスがオフになっていることです。最初にステータスがチェックされたすべてのチェックボックスを使用して、送信後に新しいステータスを維持する可能性はありますか? これまでのところ、これを行う方法がわかりませんでした。どんな助けでも大歓迎です。ありがとう、

4

1 に答える 1

1

$_POST の代わりに $_SESSION を使用できます。

<input type="checkbox" name="keyword1" value="keyword1" <?php if(isset($_SESSION['keyword1'])) echo "checked='checked'"; ?> />keyword1

そして、これをファイルの先頭に置きます:

session_start();
if (isset($_POST['my_form'])) {
    if (isset($_POST['keyword1'])) {
        $_SESSION['keyword1'] = 'checked';
    }
}
于 2013-10-02T11:09:49.130 に答える