PHP 使用新的 FormData() 和 append() 处理来自 XMLHttpRequest2 的 $_POST
PHP handle $_POST from XMLHttpRequest2 with new FormData() and append()
如何使用 PHP 处理通过 XMLHttpRequest2
与 new FormData()
和 append()
发送的数据,就像传统表单数据一样?
在我的 AJAX 参数处理函数中,参数如下所示:
q1=v1&q2=v2&q3=v3
您可以使用 print_r($_POST);
并确定访问 $_POST['q1']
以轻松获取值 v1
。
在服务器上使用 new FormData()
和 append()
测试 XMLHttpRequest2
时,当我有 PHP 并使用 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;
}
如果 id 是表单元素,您可以使用 new FormData(id)
创建 FormData。无需遍历表单的所有元素,因为 FormData 可以自行完成。
如何使用 PHP 处理通过 XMLHttpRequest2
与 new FormData()
和 append()
发送的数据,就像传统表单数据一样?
在我的 AJAX 参数处理函数中,参数如下所示:
q1=v1&q2=v2&q3=v3
您可以使用 print_r($_POST);
并确定访问 $_POST['q1']
以轻松获取值 v1
。
在服务器上使用 new FormData()
和 append()
测试 XMLHttpRequest2
时,当我有 PHP 并使用 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;
}
如果 id 是表单元素,您可以使用 new FormData(id)
创建 FormData。无需遍历表单的所有元素,因为 FormData 可以自行完成。