<form method="post">
<select name="box[]">
<option value="1" <?php if ($_POST['box[0]'] == "1") echo "selected=\"selected\";"?>>1</option>
<option value="2" <?php if ($_POST['box[0]'] == "2") echo "selected=\"selected\";"?>>2</option>
<option value="3" <?php if ($_POST['box[0]'] == "3") echo "selected=\"selected\";"?>>3</option>
</select>
<p>
<select name="box[]">
<option value="1" <?php if ($_POST['box[1]'] == "1") echo "selected=\"selected\";"?>>1</option>
<option value="2" <?php if ($_POST['box[1]'] == "2") echo "selected=\"selected\";"?>>2</option>
<option value="3" <?php if ($_POST['box[1]'] == "3") echo "selected=\"selected\";"?>>3</option>
</select>
<p>
<input type="submit" value="Submit">
</form>
ボックス名 "box1"と "box2"を使用すると問題なく動作します。私は間違って何をしていますか?PHPで投稿した後の選択ボックス配列のオプションを記憶しています
*** ** * EDIT * ** * ****コメントについて
おかげで多くのことを、私は実際に解決策を見つけましたたとえそれがあまり意味がないとしても、私自身。 if文で$ _POST ['box'] [0]と[1]を使うのではなく、単に$ box [0]と[1]を使いました。投稿されているにもかかわらず、PHPは通常の配列と見なします。$ _POST配列のようなものではありません。ワーキングコード:$_POST['box'][0]
と$_POST['box'][1]
を使用して
<form method="post">
<select name="box[]">
<option value="1" <?php if ($box[0] == "1") echo "selected='selected'";?>>1</option>
<option value="2" <?php if ($box[0] == "2") echo "selected='selected'";?>>2</option>
<option value="3" <?php if ($box[0] == "3") echo "selected='selected'";?>>3</option>
</select>
<p>
<select name="box[]">
<option value="1" <?php if ($box[1] == "1") echo "selected='selected'";?>>1</option>
<option value="2" <?php if ($box[1] == "2") echo "selected='selected'";?>>2</option>
<option value="3" <?php if ($box[1] == "3") echo "selected='selected'";?>>3</option>
</select>
<p>
<input type="submit" value="Submit">
</form>
2番目のボックスのみを選択すると、$ box [0]に移動してスクリプトが失敗するはずです。 – phant0m
phant0m、私はあなたが意味するものを見ます。この場合、問題ではないselect要素では、1つのオプションが常に選択されるため(デフォルトでは1つ)、すべてのボックス配列要素に値が設定されます。同じ問題をチェックボックスで述べた問題にぶつかりましたが技術。回避策のアイデアはありますか? –
選択できるすべてのオプションに一意の値がある場合は、そのフィールドが選択またはチェックされていれば、そのフィールドに常に正しいフィールドを関連付けることができます。もちろん、 '