Melewati formulir dan array serialisasi di ajax

pemrograman


Halo

Saya mencoba memberikan formulir yang berisi bool dan DataTable yang telah saya konversi ke array sesuai dokumentasi Datatable.

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

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


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

Jika saya meneruskannya menggunakan serializeArray, bool dari formulir selalu dikembalikan sebagai salah.

Jika saya mengatur set sebagai

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

formulir diteruskan ke pengontrol sebagai nol. Jika saya menghapus input array yang dapat didata dari ajax, dari lolos ke pengontrol baik-baik saja dengan bool sebagai benar.

Saya telah mencoba membuat objek untuk input dan memposting ini sebagai stringify tetapi kemudian array yang dapat didata adalah nol pada pengontrol meskipun formulir telah lewat dengan benar.

Saya punya solusi yang berfungsi

                                        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 } 
})   

Saya hanya berpikir itu tampak seperti sebuah kesalahan dan bukan resolusi yang baik. Bisakah seseorang membantu?

Apa yang saya coba:

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をコピーしました