我将数据传递给一个已经'json_stringified'的ajax调用。我能够将数据传递给PHP,但是当尝试访问传递的数组中的项目时,我收到以下错误:
'试图获取非对象的属性'
我尝试了几件事,但我被困住了。有人可以帮忙吗?我的代码如下:
JS:
$.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);
}
});
}
console.log(localStorage.getArray(“myFavs”))返回:
{locations:1},{locations:0},{locations:4293315}
PHP:
<?php
header('Content-type: application/json');
include 'config.php';
$data = json_decode($_POST['favs']);
var_dump($data);
foreach($data as $d)
{
print $d->locations;
}
?>
在Chrome开发人员工具窗格中返回以下内容:
array(3) {
[0]=>
string(14) "{locations: 1}"
[1]=>
string(14) "{locations: 0}"
[2]=>
string(20) "{locations: 4293315}"
}
注意:尝试在 10 <上的 C:\ xampp \ htdocs \ VibeSetter \ services \ getlocationsFavs.php 中获取非对象的属性登记/>
注意:尝试在 10 <上的 C:\ xampp \ htdocs \ VibeSetter \ services \ getlocationsFavs.php 中获取非对象的属性登记/>
注意:尝试在 10 <上的 C:\ xampp \ htdocs \ VibeSetter \ services \ getlocationsFavs.php 中获取非对象的属性BR />
有人可以告诉我如何访问此阵列的每个元素吗?我们的想法是解析每个“位置”值,并在查询中进一步将查询中的位置连接为查询搜索中的特定值。
提前致谢
答案 0 :(得分:0)
考虑$_POST['favs']
的值为'[{"locations": "1"},{"locations": "0"},{"locations": "4293315"}]';
然后,
$array = json_decode($_POST['favs'],TRUE);
foreach($array as $d)
{
print $d['locations'];
}
当为TRUE时,返回的对象将被转换为关联数组。
<强> Reference 强>