捕获Rails 3多选输入参数

时间:2010-06-24 19:36:15

标签: ruby-on-rails ruby-on-rails-3 actionpack

我有一个多选表单控件(图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

谢谢你 添

1 个答案:

答案 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>