2014-12-06 46 views
0

我正在使用ajax調用,並且在檢索和使用服務器發送的數據時遇到問題。 從服務器,我要送這樣的:在ajax調用中從服務器訪問以json形式發送的數據

$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); 
    } 
}); 

我希望能夠訪問$細節[「名稱」]等等,但是當我在ajax成功函數中提醒(數據)時,它會發出正確的信息,即{「name」:「xyz」,「cat」:3 ...}。但是,當我做alert(x)時,它顯示[object Object]。如果我訪問x [「name」],它表示未定義。 任何人都可以指出問題嗎?

+1

x.name也許?我認爲它的竅門 – Flo 2014-12-06 14:00:34

+0

謝謝@Flo。你是對的,它訣竅 – leMS 2014-12-06 14:12:21

回答

2

解析您的回覆後JSON字符串將成爲JavaScript對象。

在你的情況下,警告顯示對象,因爲你包括整個對象名稱。

要獲取屬性的期望值,你將不得不使用ObjectName.PropertyName,在你的情況x.name

這裏是一個Fiddle爲您更好的瞭解。

+0

完美...謝謝! – leMS 2014-12-06 14:30:45

+0

樂意幫忙.. – VSri58 2014-12-06 14:40:18

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,這是專業的方式去。值得學習。

相關問題