Passer un formulaire et un tableau de sérialisation en ajax

la programmation


Bonjour

J’essaie de transmettre un formulaire qui contient un booléen et un DataTable que j’ai converti en tableau selon la documentation Datatable.

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

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


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

Si je le transmets en utilisant SerializeArray, le booléen du formulaire est toujours renvoyé comme faux.

Si je définis l’ensemble comme

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

le formulaire est transmis au contrôleur comme nul. Si je supprime l’entrée du tableau datatable de l’ajax, le from passe au contrôleur avec le bool comme vrai.

J’ai essayé de créer un objet pour les deux entrées et de le publier sous forme de chaîne, mais le tableau datatable est nul sur le contrôleur bien que le formulaire ait été transmis correctement.

J’ai une solution de travail qui est

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

Je pense juste que cela semble un peu flou et pas une bonne résolution. Quelqu’un pourrait-il aider ?

Ce que j’ai essayé :

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