在php中读取jquery数组

时间:2016-09-23 21:06:31

标签: php jquery arrays

我试图通过php脚本中的post检索数组的值。

var data = [];
table.rows({ selected: true }).every(function(index){
    // Get and store row ID
    data.push(this.data()[0]);  //create a 1 dimensional array
});

//send data via ajax    
$.ajax({                                      
      url: '/...../...',                  
      type: 'POST',   
      data: {userid:data},                      
      dataType: 'json',                       

到目前为止,在我的PHP脚本中,我无法解码数组。尝试了很多方法

$myArray = $_REQUEST['userid'];
foreach ($arr as $value) {
    $userid= $value;             //for now just trying to read single item 
}

我试过print_r($myArray );这成功地将数组内容打印到屏幕上。

我正在尝试检索处理的值!请指出我正确的方向

5 个答案:

答案 0 :(得分:1)

我认为PHP不会将您称为“数据”的数组识别为数组。你无法将表行中的数据转换为JavaScript对象中的值,将其编码为JSON字符串,然后将其发布到PHP脚本并在PHP端使用 json_decode($_POST["userid"]) 将其转换为PHP数组。

答案 1 :(得分:1)

您发布到PHP的对象尤其不是jQuery对象。相反,它是一个JSON对象或更确切地说是一个JSON字符串。我想你不能像在PHP中读取常规数组一样读取该对象。

您可能想尝试使用json_decode()解码字符串。使用true作为函数参数,它将返回一个php数组,如此stackoverflow回答中所建议的那样https://stackoverflow.com/a/6964549/6710876

$phpArray = json_decode($myArray, true);

json_decode()的文档:http://php.net/manual/en/function.json-decode.php

答案 2 :(得分:0)

只需使用:

echo json_encode($myArray);

答案 3 :(得分:0)

foreach正在循环$arr,这不存在。你的数组被设置为$ myArray,所以在你的for中使用它。

$myArray = $_REQUEST['userid'];
foreach ($myArray as $value) {
    $userid= $value;             //for now just trying to read single item 
}

我相信你也应该能够在$_POST

中找到你的价值观

答案 4 :(得分:0)

根据你的var_dump:

array(1) { ["userid"]=> string(21) "assssssss,camo,castor" }

如果我们假设“assssssss,camo,castor”是3个不同的用户名。 你应该用这个:

 $userids=explode(",",$myArray->userid);
    foreach($userids as $userid){
        // use $userid
   }