【问题标题】:Creating and passing array from a form to controller using jquery使用 jquery 创建数组并将其从表单传递到控制器
【发布时间】:2012-10-11 01:05:30
【问题描述】:

我有一个表单 (form_for),我希望用户能够使用 select 方法选择多个“类别”。

= form_for @place, :url=>{:action=>"#"} do |f|
  #appended_wrapper
  .categories
    = f.label :categories, "Categories: "
    = f.select :categories, %w(Active Art Auto Food), {:include_blank => true}
  = f.submit "Submit"

每次用户选择一个类别时,我都会让 jQuery 附加一个带有类别值的 div,以便用户可以查看和删除他们添加的类别。

$('#hotel_categories').change(function(){
  value = $(this).val();
  $('#appended_wrapper').append( '<div class="appended"> '+value+' <a class="remove" href="#">Remove</a></div>' );

  $('.remove').click(function(){
    $(this).parent(".appended").remove();
  });

});

当我按下提交按钮时,我希望所有选定的类别都以数组的形式传递给我的控制器。

我如何做到这一点?

谢谢。

【问题讨论】:

    标签: jquery ruby-on-rails ruby-on-rails-3 form-for


    【解决方案1】:

    在你的 div 中,添加一个像这样的隐藏输入字段:

    <input name="category_ids[]" type="hidden" value="1">
    

    该值表示类别的id。请注意 category_ids 旁边的方括号。 所有隐藏的输入必须具有完全相同的名称。

    这些值将作为一个数组传入控制器中的 params 哈希中。

    【讨论】:

    • 我要试试这个。会回复你们的。
    • 该值是否可以简单地是实际字符串(即“Active”或“Food”)而不是类别的 id?
    • 谢谢 - 这有效,rails 将多重选择识别为参数哈希中的一个数组!
    • @hyngyn 是的,该值可以是您想要的任何值。无论如何,它都会以字符串的形式出现。
    猜你喜欢
    • 2023-03-14
    • 1970-01-01
    • 1970-01-01
    • 2014-12-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-06-14
    • 1970-01-01
    相关资源
    最近更新 更多