有没有办法从php中获取xmlhttprequest对象中的数据作为数组(不使用json& jquery)?
我遇到过一条文字说,为了在php中处理ajax请求,首先要检查输入数据是否是数组。 这是关于文本的代码:
<?php
$data = $_REQUEST['fld'];
if ( is_array($data) )
echo file_put_contents('db.csv', implode(",", $data) . "\n", FILE_APPEND) ? 1 : 2;
else
echo 3;//Error
?>
答案 0 :(得分:0)
您必须使用编码的字段名称和值创建QUERY_STRING(假设您将使用GET通过表单发送这些字段,您将在必须通过JS创建的浏览器的地址栏中看到QUERY_STRING)
示例:
var name = 'fld[]',//name of the fields
enc = encodeURIComponent(name),//encoded name
query = [],//array to store the data
flds = document.querySelectorAll('input[name="'+name+'"]');//the inputs
for(var f = 0; f < flds.length; ++f){//iterate over the inputs
//collect the data
query.push([enc,encodeURIComponent(flds[f].value)].join('='));
}
//prepare the data
query=query.join('&');
//query now is ready for transmission:
//either via GET:
XMLHttpRequestInstance.open('GET', 'some.php?'+query, true);
//or via POST:
XMLHttpRequestInstance.send(query);
$_REQUEST['fld']
将是一个数组。
注意:当您通过POST发送数据时,您还必须发送适当的标题,请参阅: Send POST data using XMLHttpRequest