如何通过ajax传递“ FormData”数组并在Laravel控制器中访问

时间:2019-05-23 00:46:43

标签: javascript jquery ajax

#我只想知道如何通过重传ajax向该数组发送控制器

var dataPanier=[];

function addarray(objser)
{
 dataPanier.push(objser);

}


$('.target').click(function() {

  var btn_name=$(this).attr("name");

     switch(btn_name) {

       case 'FormPVC':

       var dataformPVC = new FormData(),
           form_data = $('#'+btn_name).serializeArray();

          $.each(form_data, function (key, input) {
              dataformPVC.append(input.name, input.value);
           });
          dataformPVC.append('Fichier', $('#File_PVC')[0].files[0]);
/* function addarray push dataform in array*/
           addarray(dataformPVC);
break;
.
.
.
more . . .

我试图通过ajax将多个表单数据作为数组发送到Larave控制器。

$.ajax({
    type: 'POST',
    url: 'lsitedevis',
    data: array ,
    success: function(data) {
        toastr.success('Successfully added Post!', 'Success Alert', {timeOut: 5000});

    }
});

2 个答案:

答案 0 :(得分:0)

由于您已经在使用jQuery进行AJAX请求,因此可以使用serialize()函数。这支持多种表单元素,因此可以:

var formData = $('#form1, #form2').serialize();

$.ajax({
    type: 'POST',
    url: 'lsitedevis',
    data: formData ,
    success: function(data) {
        toastr.success('Successfully added Post!', 'Success Alert', {timeOut: 5000});
    }
});

您可能想问自己为什么拥有多个表格,但都将其作为单个请求提交。如果出于视觉目的,使用单一格式并使用其他标记元素(例如<fieldset><div>)分隔内容可能会更容易。

答案 1 :(得分:0)

$("#btnTest").click(function(){
var formData = $('#frm1, #frm2').serialize();
console.log(formData);
$.ajax({
    method: 'POST',
    url: 'lsitedevis',
    data: formData ,
    success: function(data) {
     toastr.success('Successfully added Post!', 'Success Alert', {timeOut: 5000});
    }
    
});
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<form id="frm1">
<input name="n1" type="text"/>
<input name="n2" type="hidden" value="test2"/>
<input name="n3" type="hidden" value="test3"/>

</form>

<form id="frm2">
<input name="n1" type="text" />
<input name="n2" type="hidden" value="test2"/>
<input name="n3" type="hidden" value="test3"/>

</form>

<input type="button" id="btnTest" value="send"/>