我正在使用ajax调用,并且无法检索和使用服务器发送的数据。 从服务器上,我发送了这个:
$details["name"]=$name;
$details["cat"]=$category;
$details["price"]=$price;
$details["quant"]=$quantity;
$details["img"]=$image_url;
echo json_encode($details);
这是客户端的ajax调用:
$.ajax({
type:'post',
url:'update.php',
data: {data:id},
success: function(data){
alert(data);
var x=JSON.parse(data);
alert(x);
}
});
我希望能够访问$ details [" name"]等等但是当我在ajax成功函数中发出警报(数据)时,它会提醒正确的信息,即{" name& #34;:" xyz"," cat":3 ...}。但是,当我执行alert(x)时,它会显示[object Object]。如果我访问x [" name"],则表示未定义。 有谁可以指出这个问题?
答案 0 :(得分:2)
解析响应后, JSON字符串将成为 JavaScript对象。
在您的情况下,警报显示Object,因为您包含整个对象名称。
要获得所需的媒体价值,您必须使用ObjectName.PropertyName
,在您的情况下x.name
以下是 Fiddle ,以便您更好地理解。
答案 1 :(得分:1)
您可以更直接地使用JSON .... http://api.jquery.com/jquery.getjson/
$.getJSON({
type:'post',
url:'update.php',
data: {data:id},
success: function(details){
console.log(details, details.name);
}
});
试试吧。数据应该已经解析为JSON。
此外,我使用alert
而不是console.log
,而这是最好的方法。非常值得学习。