通过AJAX发送时向FormData添加信息

时间:2020-03-13 10:11:23

标签: javascript jquery ajax

我正在使用AJAX保存一些数据。我需要保存FormData和其他信息。我正在使用以下功能,但是我不确定如何将其他信息添加到FormData对象。你能帮忙吗?

function vignetteAjax(company_id, client_id, type_id, url) {
  var formData = document.getElementById("edit_form");
  var fd = new FormData(myform);

  $.ajax({
    url: url,
    type: "post",
    data: {
      "_token": "{{ csrf_token() }}",
      "company_id": company_id,
      "client_id": client_id,
      "type_id": type_id,
    },
    beforeSend: function() {},
    success: function(data) {
      console.log('done');
      $("#policies_list").empty().html(data);
    },
    complete: function() {
      console.log('compete');
    }
  });

  return 0;
}

3 个答案:

答案 0 :(得分:3)

您只需要在其他数据上附加FormData

var fd = new FormData(myform );
fd.append('NameHere',"ValueHere");
// Rest of Code 

答案 1 :(得分:2)

使用append方法将其他数据添加到FormData对象,然后仅发送FormData对象。

var formData = document.getElementById("edit_form");
var fd = new FormData(myform);
fd.append("_token", "{{ csrf_token() }}");
fd.append("company_id", company_id);
fd.append("client_id", client_id);
fd.append("type_id", type_id);

$.ajax({
    url: url,
    type: "post",
    data: fd,
    contentType: false,
    processData: false,
});

答案 2 :(得分:-1)

您可以通过邮政发送整个表格数据

data: {
    "_token": "{{ csrf_token() }}",
    "company_id": company_id,
    "client_id": client_id,
    "type_id": type_id,
    formData: $('#edit_form').serialize()},
},

此外,因此,您正在使用jQuery,则无需使用document.getElementById(“ edit_form”)。您可以直接使用$('#edit_form')。 在PHP方面(假设您使用PHP),请使用parse_str进行反序列化。

parse_str($_POST['formData'], $formData);