<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", это работает без проблем. Что я делаю не так?
****** РЕДАКТ. **** ****
Большое спасибо за ваши комментарии, но я сам нашел решение, даже если оно не имеет особого смысла. Вместо использования $ _POST ['box'] [0] и [1] в операторе if я просто использовал $ box [0] и [1]. Несмотря на то, что он размещен, php видит его как обычный массив, а не как $ _POST-массив! Рабочий код:
<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>