Используя PHP, как я могу обработать данные, отправленные через XMLHttpRequest2
с new FormData()
а также append()
как традиционные данные формы?
В моей функции обработки параметров AJAX параметры будут выглядеть следующим образом:
q1=v1&q2=v2&q3=v3
Вы могли бы использовать print_r($_POST);
и определить доступ $_POST['q1']
чтобы получить значение v1
без труда.
Во время тестирования XMLHttpRequest2
с new FormData()
а также append()
на сервере, когда у меня есть 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 Parameters Функция
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;
}
Вы можете использовать new FormData(id)
создать FormData, если id является элементом формы. Не нужно перебирать все элементы формы, поскольку FormData может сделать это самостоятельно.
Других решений пока нет …