繁体   English   中英

javascript制成的数组未作为数组发送到控制器?

[英]javascript-made array not being sent to controller as an array?

我有一个`events / new.html.erb视图,其中包含:

<%= hidden_field_tag 'id_array[]', [], id: 'parti_ids'  %>

<%= f.submit "Create Meeting", class: "btn-submit" %>

这样,在提交时,id_array []作为数组发送到我的events_controller events_controller#create操作。 我遇到的问题是,例如,如果我想要id_array = [3,4,5] ,它将在控制器处以["3,4,5"]而不是["3","4","5"]形式传递和拾取["3","4","5"]

这是我的application.js中创建该代码的代码:

var idList = [];

$(document).on('click', "#check-button", function(){

   ....

    $("#check-list li input").each(function(){ //for each listed colleague...
        if( $(this).is(":checked")){ //if check-box is ticked

            idList.push($(this).val()); //add id to idList

        }
    });

    $('#parti_ids').val(idList); //sets idList array to be value of parti_ids hidden_tag_field in view

});

我感觉这与$('#parti_ids').val(idList); ,因为这是实际设置parti_ids的唯一位置。 但是我不知道像这样设置数组值有什么问题,或者为什么它使像[“ 3,4”]而不是[“ 3”,“ 4”]这样的事情。

为了向您展示如何在控制器中使用它,下面是一个片段:

participants = params[:id_array]
participants.each do |id|
   puts(id) #THIS PUTS THE ENTIRE VALUE OF PARTICIPANTS INSTEAD OF EACH ID
end

删除此行。

<%= hidden_field_tag 'id_array[]', [], id: 'parti_ids'  %>

并添加它。

<input type="hidden" name="id_array" id="parti_ids" />

然后将其拆分。

  participants = params[:id_array]
  participants.split(',').each do |id|
    puts(id) #THIS PUTS EACH ID
  end

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM