تمرير نموذج تسلسلي ومصفوفة في اياكس


مرحبًا

أحاول تمرير نموذج يحتوي على منطقي وDataTable الذي قمت بتحويله إلى مصفوفة وفقًا لوثائق Datatable.

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

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


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

إذا قمت بتمريره باستخدام serializeArray، فسيتم دائمًا تمرير المنطق من النموذج كخطأ.

إذا قمت بتعيين المجموعة كـ

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

يتم تمرير النموذج إلى وحدة التحكم باعتباره خاليًا. إذا قمت بإزالة مدخلات صفيف البيانات من ajax، فسيمرر من إلى وحدة التحكم بشكل جيد مع كون المنطق صحيحًا.

لقد حاولت إنشاء كائن لكل من المدخلات ونشره على أنه stringify ولكن بعد ذلك تكون مصفوفة البيانات فارغة على وحدة التحكم على الرغم من مرور النموذج بشكل صحيح.

لدي حل عملي وهو

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

أعتقد أن هذا يبدو مجرد خدعة وليس حلاً جيدًا. هل يمكن لأحد أن يساعد؟

ما حاولت:

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