【问题标题】:Rails select with multiple options only sends one带有多个选项的 Rails 选择仅发送一个
【发布时间】:2013-12-18 09:50:26
【问题描述】:

我有这个表格:

<form accept-charset="UTF-8" action="/contracts/<%= params[:id] %>/addConsultants" method="POST" id="updateConsultants"><!---->

  <div style="margin:0;padding:0;display:inline">
    <input name="utf8" type="hidden" value="✓">
    <input name="authenticity_token" type="hidden" value="<%= session[:_csrf_token] %>">
  </div>

  <div class="consultant_selector">
    <h2>Consultants</h2>

    <select name="consultants_available" size="10" multiple>
      <% @users.each do |u| %>
        <option value="<%= u[:id_user] %>"><%= u[:name] %></option>
      <% end %>
    </select>

    <ul>
      <li class="triangle_right" id="add_consultant"></li>
      <li class="triangle_left" id="remove_consultant"></li>
    </ul>

    <select name="consultants_selected" size="10" multiple>
    </select>
  </div>

  <div>
    <input type="submit" value="Mettre à jour" />
  </div>
</form>

在我的控制器中:

  def add_consultants
    @contract = Contract.find(params[:id])
    @consultants = params[:consultants_selected];
    puts "------ Consultants: #{@consultants}"

    redirect_to contract_path
  end

我的想法是,我可以从第一个选择中选择名称,通过单击三角形将它们移动到第二个,然后提交表单以将这些名称分配给合同。但是,当我这样做时,对puts 的调用仅打印我在第二次选择中拥有的 3 个 ID 中的一个(它们都具有selected 属性到true)。如何获得多个值?

【问题讨论】:

    标签: ruby-on-rails forms


    【解决方案1】:

    刚刚在这里找到答案:https://stackoverflow.com/a/2196522/1796742

    更改第二个选择的名称:

    <select name="consultants_selected" size="10" multiple>
    </select>
    

    收件人:

    <select name="consultants_selected[]" size="10" multiple>
    </select>
    

    工作。

    【讨论】:

      猜你喜欢
      • 2015-04-04
      • 2017-04-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多