Truyền biểu mẫu và mảng tuần tự hóa trong ajax

lập trình


Xin chào

Tôi đang cố gắng chuyển một biểu mẫu chứa bool và DataTable mà tôi đã chuyển đổi thành một mảng theo tài liệu Datable.

 var aData = $('#dtPurchaseEnquiryLines').DataTable().rows().data().toArray();

  var formData = $("#PurchaseEnquiryDetails").serializeArray();


 $.ajax({
        type: "POST",
        url: "/PurchaseEnquiry/UpdatePEHeader",
        data: { oPE: jsonData, oLines: aData } 
})

Nếu tôi chuyển nó bằng cách sử dụng serializeArray thì bool từ biểu mẫu luôn trả về giá trị sai.

Nếu tôi đặt bộ này là

var formData = $("#PurchaseEnquiryDetails").serialize();

biểu mẫu được chuyển tới bộ điều khiển dưới dạng null. Nếu tôi loại bỏ đầu vào mảng có thể định dữ liệu khỏi ajax thì từ sẽ chuyển sang bộ điều khiển với bool là đúng.

Tôi đã thử xây dựng một đối tượng cho cả hai đầu vào và đăng đối tượng này dưới dạng xâu chuỗi nhưng sau đó mảng dữ liệu có giá trị rỗng trên bộ điều khiển mặc dù biểu mẫu đã được chuyển chính xác.

Tôi có một giải pháp làm việc đó là

                                        var aData = $('#dtPurchaseEnquiryLines').DataTable().rows().dat();

var formData = $("#PurchaseEnquiryDetails").serialize();


var jsonData = {};
       

$(formData).each(function (index, obj) {
          if (obj.name === "ReviewRequired1" && !jsonData.hasOwnProperty(obj.name)) {
        jsonData[obj.name] = obj.value; } 
else if (!jsonData.hasOwnProperty(obj.name)) {
  jsonData[obj.name] = obj.value; }
 });

 $.ajax({
     type: "POST",
     url: "/PurchaseEnquiry/UpdatePEHeader",
     data: { oPE: jsonData, oLines: aData } 
})   

Tôi chỉ nghĩ rằng điều đó có vẻ hơi sai lầm và không phải là một giải pháp tốt. Ai đó có thể giúp đỡ?

Những gì tôi đã thử:

var aData = $('#dtPurchaseEnquiryLines').DataTable().rows().dat();

var formData = $("#PurchaseEnquiryDetails").serialize();


 var jsonData = {};
       

     $(formData).each(function (index, obj) {
           if (obj.name === "ReviewRequired1" && !jsonData.hasOwnProperty(obj.name)) {
           jsonData[obj.name] = obj.value;
    } else if (!jsonData.hasOwnProperty(obj.name)) {
      jsonData[obj.name] = obj.value;
  }
});

$.ajax({
     type: "POST",
     url: "/PurchaseEnquiry/UpdatePEHeader",
      data: { oPE: jsonData, oLines: aData } 
})   

コメント

タイトルとURLをコピーしました