代码之家  ›  专栏  ›  技术社区  ›  Bachir Messaouri

Ajax:向formData添加变量

  •  3
  • Bachir Messaouri  · 技术社区  · 7 年前

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

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

    据我所知,以下是脚本的一部分,它在发送formData之前生成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 回复  |  直到 7 年前
        1
  •  2
  •   Rotimi    7 年前

    您可以附加任意多个 key => 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); 
       }