2011-06-22 31 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

如果您可以選擇的每個選項都具有唯一值,則始終可以將正確的字段與該值相關聯(如果已選中或選中)。你當然也可以在'