【问题标题】:RoR: send additional data on for submit with Jquery AJAXRoR:发送附加数据以使用 Jquery AJAX 提交
【发布时间】:2018-07-15 15:55:25
【问题描述】:

我正在处理一个 Rails 表单,我需要将在 Jquery 中创建的数组发送到我的 rails 控制器。我很难以正确的格式获取数据。

在更新此模型时,我设法让 Jquery 数组通过 AJAX 发送。它为数组参数发送正常 PATCH 和附加 PATCH。所以2更新。一切都可以找到更新,它有点hacky,但可以满足我的需要。

这在创建时不起作用,因为我不能发送两个 POST 请求来创建同一个对象?这有意义吗?

所以我想我的问题是如何让我的 AJAX 数据与普通表单提交一起标记?

这里是

    $('#employer_job_submit_button').on('click',function(){
      $.ajax({
        url:"/jobs/<%= @job.id %>",
        type:'PATCH',
        dataType:'json',
        data:{
          job: {
            benefits: tags_array
          }
        }
    });
  });

这是我的观点(部分)

<%= form_for @job, :html => {:class => 'profile_form'} do |f| %>
.....
<div>
    <%= f.submit "Post Job", class: "btn btn-primary btn-block", id: "employer_job_submit_button" %></div>
</div>

<% end %>

我尝试使用单独的代码来创建新工作。像这样:

$('#employer_job_submit_button').on('click',function(e){
      e.preventDefault();
      var form_data = $('form').serialize()
      $.ajax({
        url:"/jobs",
        type:'POST',
        dataType:'json',
          data:{
      job: form_data
    }
});

});

这会通过 AJAX 发送我所有的表单数据,但我不知道如何将“好处”数组添加到表单数据中。这也不是我真正想做的,因为它绕过了标准的 Rails 表单。

我只想添加我的 Jquery 创建的数组以及表单数据。

【问题讨论】:

    标签: javascript jquery ruby-on-rails ajax forms


    【解决方案1】:

    这会通过 AJAX 发送我所有的表单数据,但我不知道如何将“好处”数组添加到表单数据中。

    您可以简单地将字符串化数组版本添加到您的数据中。

    发件人:

    dataType:'json',
          data:{
            job: form_data
       }
    

    收件人:

    data: {
          job: form_data,
          benefits: JSON.stringify(tags_array)
    }
    

    通过这种方式,您将在服务器上收到两个变量,如下例所示:

    job:firstname=Mickey&lastname=Mouse
    benefits:["Saab","Volvo","BMW"]
    

    相反,如果您想继续将您的序列化表单数据添加到您的数组中,您可以使用jquery param,如下所示:

    var form_data = $('form').serialize() + '&' + $.param({"benefits": tags_array});
    

    在最后一种方式中,您需要在服务器端解码作业参数以提取 **benefits" 数组。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-04-28
      • 1970-01-01
      • 1970-01-01
      • 2016-11-09
      • 2011-04-01
      • 2011-02-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多