如何在jquery中将数据serialize()和new formData相互组合

问题描述 投票:1回答:1

对于仅包含文本字段的表单,我使用此js:

$.ajax({
    type: "POST",
    url: 'order.php',
    data: $('#order').serialize(), 
    success: function(data){
            $('.alert-success').html(data); 
    }
});

对于仅用于文件上传的另一种形式,我有这个js:

var file_name = $('.image').val();
var index_dot = file_name.lastIndexOf(".")+1;
var ext = file_name.substr(index_dot);

var formData = new FormData();          
formData.append('fileupload',$( '.image' )[0].files[0], file_name);

$.ajax({
    url: 'order.php',
    data: formData,
    processData: false,
    contentType: false,
    type: 'POST',
    success: function(data){
        $(".alert-success").show(); 
        $('.alert-success').html(data);

    }
});

现在我想将2个数据组合在一起:data: $('#order').serialize(),data: formData,以便我只有1个ajax

我该怎么做?(我已经将input type="file"放入了第一种形式)

jquery ajax serialization form-data
1个回答
1
投票
var file_name = $('.image').val();
var index_dot = file_name.lastIndexOf(".")+1;
var ext = file_name.substr(index_dot);

var formData = new FormData(this);          
formData.append('fileupload',$( '.image' )[0].files[0], file_name);

$.ajax({
    url: 'order.php',
    data: formData,
    ...

注意:用var formData = new FormData(this);代替var formData = new FormData();

© www.soinside.com 2019 - 2024. All rights reserved.