2009-11-27 74 views
1

我想替換掉像一個多選框:用簡單的選擇框的任意數量的幾個簡單的選擇框來代替多選擇框在HTML

<select multiple="multiple" name="options"> 
<option value="option1">option1</option> 
<option value="option2">option2</option> 
... 
</select> 

<select name="options1"> 
<option value="option1">option1</option> 
<option value="option2">option2</option> 
... 
</select> 

<select name="options2"> 
<option value="option1">option1</option> 
<option value="option2">option2</option> 
... 
</select> 

有沒有辦法通過POST發送和檢索一個選擇框的數組,或者我應該嘗試訪問每個名爲options(number)的選擇框,直到它失敗?似乎有點骯髒。

我應該能夠提交一個操作來「刪除這個選擇框」或「創建新的選擇框」,所以我需要一些方法來區分選擇框。

回答

1

只給選擇元素相同的名稱。

HTML表單沒有「數組」的概念。

foo=bar&foo=baz&aDifferentField=fizzbuzz 

這是多個選擇(名爲foo)與選定的將生成(兩個值時,有「aDifferentField」在:用於處理輸入數據的陣列每形式處理庫從一個名稱具有多個值生成它們形式也)。

有時會涉及到附帶條件。

Perl的CGI.pm需要的數據是在列表環境要求:

my @foos = $cgi->param('foo'); 

PHP要求結束與名中的字符 '[]'

name="foo[]" 
foo[]=bar&foo[]=baz&aDifferentField=fizzbuzz 

...但它都歸結爲名稱是相同的(儘管ID必須仍然不同)。

至於刪除:

<label for="foo5">Group 5</label> 
<select name="foo" id="foo5"> 
    <option value="delete_foo5">Delete this group</option> 
    <option value="1">1</option> 
    <option value="2">2</option> 
</select>