ajax — PHP обрабатывает $ _POST из XMLHttpRequest2 с новыми FormData () и append ()

Используя 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;
}

1

Решение

Вы можете использовать new FormData(id) создать FormData, если id является элементом формы. Не нужно перебирать все элементы формы, поскольку FormData может сделать это самостоятельно.

1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]