通过JQuery AJAX一起发送FormData和String数据

时间:2013-09-03 21:25:39

标签: ajax jquery

我在下面使用JQuery的AJAX函数上传图像

var id = <?php echo $id; ?>;
var img_data = new FormData($("form")[0]);

$.ajax({
    url: 'add.php',
    data: img_data,
    contentType: false,
    processData: false,
    type: 'POST',
    success: function(data){
        alert(data);
    }
});

我想要包含一个发送FormData的字符串。我试过以下,但没有运气

data: img_data {id: id},

这里的语法是什么?

2 个答案:

答案 0 :(得分:4)

使用append

var img_data = new FormData($("form")[0]);
img_data.append('id', id); 

答案 1 :(得分:-1)

您可以创建一个JSON数据对象并将其作为application / json传递并处理add.php中的数据:

var data = {
    id : <?php echo !empty($id) ? $id : "''",
    img_data : new FormData($("form")[0])
};

$.ajax({
    url: 'add.php',
    data: data,
    contentType: "application/json",
    type: 'POST',
    success: function(data){
        alert(data);
    }
});

虽然非常规,但您也可以使用POST将数据作为查询字符串附加到URL。您还需要编辑add.php以获取此参数。

$.ajax({
    url: 'add.php?id=' + id,
    data: img_data,
    processData: false,
    type: 'POST',
    success: function(data){
        alert(data);
    }
});