1

使用 PHP 如何处理通过传统表单数据发送XMLHttpRequest2的数据new FormData()append()

在我的 AJAX 参数处理函数中,参数如下所示:

q1=v1&q2=v2&q3=v3

您可以使用print_r($_POST);并确定访问$_POST['q1']以轻松获取价值v1


当我使用 PHP 并在服务器上进行测试时XMLHttpRequest2,我得到以下信息:new FormData()append()print_r($_POST);

-----------------------------3875113001076
Content-Disposition: form-data; name="q1"
v1

-----------------------------3875113001076
Content-Disposition: form-data; name="q2"
v2

-----------------------------3875113001076
Content-Disposition: form-data; name="q3"
v3

但是我无法再访问$_POST['q1'];.


JavaScript AJAX 参数函数

function ajax_parameters(id)
{
 var f;
 var fd = new FormData();

 if (id_(id) || typeof id=='object' && id.nodeName.toLowerCase()=='form')
 {
  if (id_(id)) {f = id_(id);}
  else {f = id;}

  for (var i = 0;i<f.elements.length;i++)
  {
   if (f.elements[i].type!='file')
   {
    fd.append(f.elements[i].name,f.elements[i].value);
   }
   else
   {
    for (var j = 0; j < f.elements[i].files.length; ++j)
    {
     fd.append(f.elements[i].name+'['+j+']', f.elements[i].files[j],f.elements[i].files.item(j).name);
    }
   }
  }
 }
 return fd;
}
4

1 回答 1

1

如果 id 是表单元素,您可以new FormData(id)用来创建 FormData。无需遍历表单的所有元素,因为 FormData 可以自己完成。

于 2015-10-14T20:40:04.127 回答