Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/293.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/codeigniter/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 用PHP解析JSON_解码数组_Javascript_Php_Json_Ajax - Fatal编程技术网

Javascript 用PHP解析JSON_解码数组

Javascript 用PHP解析JSON_解码数组,javascript,php,json,ajax,Javascript,Php,Json,Ajax,我将数据传递给一个已经“json_字符串化”的ajax调用。我能够将数据传递给PHP,但是当尝试访问传递的数组中的项目时,我收到以下错误: '正在尝试获取非对象的属性' 我试过好几种方法,但都卡住了。有人能帮忙吗?我的代码如下: js: } log(localStorage.getArray(“myFavs”)返回: {位置:1},{位置:0},{位置:4293315} php: 注意:试图在第10行的C:\xampp\htdocs\VibeSetter\services\getlocatio

我将数据传递给一个已经“json_字符串化”的ajax调用。我能够将数据传递给PHP,但是当尝试访问传递的数组中的项目时,我收到以下错误:

'正在尝试获取非对象的属性'

我试过好几种方法,但都卡住了。有人能帮忙吗?我的代码如下:

js:

}

log(localStorage.getArray(“myFavs”)返回:

{位置:1},{位置:0},{位置:4293315}

php:


注意:试图在第10行的C:\xampp\htdocs\VibeSetter\services\getlocationsFavs.php中获取非对象的属性

注意:试图在第10行的C:\xampp\htdocs\VibeSetter\services\getlocationsFavs.php中获取非对象的属性

注意:试图在第10行的C:\xampp\htdocs\VibeSetter\services\getlocationsFavs.php中获取非对象的属性

有人能告诉我如何访问这个数组的每个元素吗?其思想是解析每个“位置”值,并在代码中将查询中的位置进一步连接为查询搜索中的特定值


提前感谢

考虑到
$\u POST['favs']
的值为
'[{“位置”:“1”},{“位置”:“0”},{“位置”:“4293315”}]

那么

如果为TRUE,则返回的对象将转换为关联数组


考虑到
$\u POST['favs']
的值为
'[{“位置”:“1”},{“位置”:“0”},{“位置”:“4293315”}]

那么

如果为TRUE,则返回的对象将转换为关联数组


您可以发布完整的数组吗?如果是[{locations:1}'、“{locations:0}'、“{locations:4293315}”]var_dump($\u post['favs']),请检查$post['favs];返回字符串(58)“{locations:1}”、“{locations:0}”、“{locations:4293315}]”是否可以发布完整的数组?如果是[{locations:1}”、“{locations:0}”、“{locations:4293315}”]var_dump($\u post['favs']),请检查$_post['favs'];返回字符串(58)“[“{locations:1}”、“{locations:0}”、“{locations:4293315}]”我以前也这么想过,也试过。不幸的是,所做的只是返回此错误:
警告:第8行的C:\xampp\htdocs\VibeSetter\services\getlocationsFavs.php中的非法字符串偏移量“locations”{我以前也这么想并尝试过。不幸的是,只会返回以下错误:
警告:第8行的C:\xampp\htdocs\VibeSetter\services\getlocationsFavs.php中的非法字符串偏移量'locations'{
    $.ajax({
        url: 'http://localhost/VibeSetter/services/getlocationsFavs.php',
        dataType: 'json',
        type: "POST",               
        data: {favs: JSON.stringify(localStorage.getArray("myFavs"))},
        success: function(data, status)
        {
            $.each(data, function(i,item)
            { 
                //pass to function to fill array
                      populateLocationsArray(i+1, item.idlocations,item.name,item.longitude, item.latitude);

            });
        },

         error: function(jqXHR, textStatus, errorThrown)
        {
            console.log(arguments);
        //  alert('HTTP Error: '+errorThrown+' | Error     Message:'+textStatus);

        }
    });
<?php
  header('Content-type: application/json');

  include 'config.php';
  $data = json_decode($_POST['favs']);
  var_dump($data);

  foreach($data as $d)
  {
      print $d->locations;
  }

  ?>
array(3) {
  [0]=>
  string(14) "{locations: 1}"
  [1]=>
  string(14) "{locations: 0}"
  [2]=>
  string(20) "{locations: 4293315}"
  }
$array = json_decode($_POST['favs'],TRUE);
foreach($array as $d)
{
    print $d['locations'];
}