我试图通过ajax将一个数组从php发送到javascript,并且遇到了一些问题。
我的php数组代码如下所示:
if($_REQUEST['action'] == 'miniCart'){
foreach($_SESSION['cart']['items'] as $item){
$message[$item['id']]['name'] = $item['name'];
$message[$item['id']]['price'] = number_format($item['price'], 2, '.', '');
$message[$item['id']]['qty'] = $item['count'];
}
$message = json_encode($message,true);
}
它构建了一个类似于这样的数组:
[2] =>
[name] => "Product 1"
[price] => "$15.00"
[qty] => "2"
[1] =>
[name] => "Product 2"
[price] => "$15.00"
[qty] => "3"
我的JS代码如下所示:
var miniCart = function () {
$(".tester").on("click", function(event) {
var action = 'miniCart';
$.ajax({
type: "POST",
url: "cart/cart.php",
data:"action=" + action + "&ajax=true",
success: function(string){
var obj = jQuery.parseJSON(string);
alert( obj.name);
}});
});
}
我的Json从php发送到JS,如下所示:
{“2”:{“name”:”Product 1”,”price”:”15.00”,”qty”:”3”},”1”:{“name”:”Product 2”,”Price”:”15.00”,”qty”:”3”}}
我知道,如果有人能帮我完成这个任务,这样我就可以在JS端构建另一个最有帮助的数组,这是行不通的。我的问题是我不能正确地把它们解析出来。我尝试过许多JSON解析的变体,但我认为最初的"2“是抛掉它的。根据订单的不同,项目ID永远不会更改。
也许我是在不正确地设计这个。我最终希望使用这些变量来构建购物车表。
请协助。
谢谢你的好意
发布于 2014-07-21 22:03:46
它构建了一个类似于这样的数组:
您实际上是在PHP中构建一个关联数组,而不是0索引数组。然后将其转换为JSON对象(以项ID作为键),而不是JSON数组。
若要在javascript中获取ID为"2“的项目名称,请执行以下操作:
alert(obj["2"].name);
您可以像这样迭代JSON对象:
for (var key in obj) {
console.log("Item ID: " + key);
console.log(obj[key]);
}
https://stackoverflow.com/questions/24879546
复制相似问题