从php中获取xmlhttprequest中的数据作为数组

时间:2014-07-27 07:59:56

标签: javascript php arrays ajax json

有没有办法从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 
  ?>

1 个答案:

答案 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