2011-06-22 26 views
0
<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提交后记住选择框数组中的选项

** * ** *编辑* ** * ****

非常感谢您的意见,但我居然找到了解决办法我自己,即使它没有多大意义。我没有在if语句中使用$ _POST ['box'] [0]和[1],而是简单地使用了$ 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> 
+0

如果你只选择第二个盒子,它应该进入$ box [0],那么你的脚本应该失败。 – phant0m

+0

phant0m,我明白你的意思。在这种情况下,select元素不是问题,因为所有的box数组元素都会有一个值,因为总会选择一个选项(默认为1)。尽管我用相同的复选框碰到了你提到的问题技术。你有解决方法的想法吗? –

+0

如果您可以选择的每个选项都具有唯一值,则始终可以将正确的字段与该值相关联(如果已选中或选中)。你当然也可以在'