我有一个多选表单控件(图1)。当我选择多个值时,Firefox会发送两个值(图2)。但只有最后一个值作为输入值发送到我的控制器(图3)。如何将所有传递给控制器的值传递给我?
<form action="html_items/search" method="post" >
<!-- Criteria -->
<div style="float:none;">
<label>Content Provider </label>
<select multiple id="content_provider" name="content_provider">
<option value="FLR">Flare</option>
<option value="SLDT">Slashdot</option>
</select>
</div>
<input type="submit" value="Search" />
</form>
图。 1
Parametersapplication / X WWW的窗体-urlencoded
content_provider FLR
content_provider SLDT
图。 2
PARAMs [{“content_provider”=&gt;“SLDT”,“controller”=&gt;“html_items”,“action”=&gt;“搜索”}]
...
图。 3
谢谢你 添
答案 0 :(得分:1)
首先,如果您要创建所选元素的数组,您需要将<select>
命名为<select name='foo[]'>
下一步......如果没有选择任何内容,则不会显示任何内容。这是有道理的,但它让我有点难过。我正在做ajax,左边的选择是搜索结果,右边是完成的列表。
我刚刚在我的提交按钮中添加了.click(function(){});
,将左侧的每个项目设置为使用jQuery选中,并且这些项目作为数组显示在参数中。在下面的示例中,您应该看到第一个项目显示。
<select multiple id="content_provider" name="content_provider">
<option value="FLR" selected>Flare</option>
<option value="SLDT">Slashdot</option>
</select>