Ajax: 添加一个变量到一个formData

Ajax: add a variable to a formData

我有一个 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 文件的根目录的开头,因此,通常应该可以从该文件的任何函数中访问它。

您可以向表单数据附加任意多个 key => value

fd.append('key',  value); 

应用于您的场景,

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

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

示例

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

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