Ajax:向formData添加变量

时间:2017-11-24 16:58:48

标签: php jquery ajax form-data

我有一个jQuery脚本,通过“formData”变量将有关图片的信息发送到php文件,如下所示:

    url: 'ajax.php',
    type: "POST",
    contentType:false,
    processData: false,
    cache: false,
    data: formData,
    success: function(data){}

据我所知,这是脚本的一部分,它在发送之前生成该formData的内容:

function handleFileUpload(files,obj)
{
    for (var i = 0; i < files.length; i++) 
    {
        var fd = new FormData();
        fd.append('file', files[i]);
        var status = new createStatusbar(obj);
        status.setFileNameSize(files[i].name,files[i].size);
        sendFileToServer(fd,status);
    }
}

要在php文件中捕获该数据,我只需使用

$_FILES['file'][...];

我想要做的是同时向php文件发送一个额外的javascript变量,以及我能够捕获的formData

$_POST['picID'];

我该怎么做?

谢谢。

PS附加的javascript变量“picID”是在js文件根目录的开头定义的,所以通常可以从该文件的任何函数中访问它。

1 个答案:

答案 0 :(得分:2)

您可以追加尽可能多的key =&gt; value表单数据。

fd.append('key',  value); 

应用于您的方案,

fd.append('picID', value); //where value is the value of picID

我建议您在fd循环开始之前声明表单数据变量for。这是因为只有文件数据需要循环。对于其他表单数据,请将它们添加到循环外部

示例

function handleUpload(){
var fd = new FormData();
//commence for loop {

  // }end for loop
   //append extra key => value 
  fd.append('key', value); 
   }