2009-11-27 78 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>