我正在将数据传递给已“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")) 返回:
{位置:1},{位置:0},{位置: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 开发者工具 Pane 中返回以下内容:
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中获取非对象的属性< br/>
注意:尝试在10行的C:\xampp\htdocs\VibeSetter\services\getlocationsFavs.php中获取非对象的属性< br/>
注意:尝试在10行的C:\xampp\htdocs\VibeSetter\services\getlocationsFavs.php中获取非对象的属性< br/>
有人可以告诉我如何访问该数组的每个元素吗?这个想法是解析每个“位置”值,并在代码中进一步连接查询中的位置作为查询搜索中的特定值。
提前致谢
最佳答案
考虑到 $_POST['favs']
的值为 '[{"locations": "1"},{"locations": "0"},{"locations": "4293315"}]';
那么,
$array = json_decode($_POST['favs'],TRUE);
foreach($array as $d)
{
print $d['locations'];
}
当为 TRUE 时,返回的对象将转换为关联数组。
<强> Reference
关于javascript - 在 PHP 中解析 JSON_Decoded 数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38066367/