2012-12-16 100 views
0

我從PHP發送一個數組與json_encode,我試圖得到與AJAX和jQuery。 每件事都可以。從jQuery讀取PHP的JSON數據

JSON結構是:

names{"p1":"John","p5":"Smith"} 

jQuery代碼是:

$.ajax({ 
type: "POST", 
url: "return.php", 
dataType: "json", 
data: "id=56", 
success: function(data) { 
     $(data.names).each(function(key, txt) { 
      alert(txt); 
     }); 
    } 
} 

這個代碼不返回任何東西!我覺得瀏覽器不要輸入each

我該怎麼辦?

回答

3

,而不是這樣的:

$(data.names).each(function(key, txt) { 
    alert(txt); 
}); 

使用這樣的:

$.each(data.names, function(key, txt) { 
    alert(txt); 
}); 

和你的JSON似乎你所說的是不正確的:names{"p1":"John","p5":"Smith"}

這應該是這樣的:

{ 
    "names": { 
     "p1": "John", 
     "p5": "Smith" 
    } 
} 

你可以在這裏檢查你的json:http://jsonlint.com/

1

我建議你使用jQuery的$ .getJSON(); http://api.jquery.com/jQuery.getJSON/ 但直接回答你的問題;你沒有關閉你的ajax()函數。

$.ajax({ 
type: "POST", 
url: "return.php", 
dataType: "json", 
data: "id=56", 
success: function(data) { 
     $(data.names).each(function(key, txt) { 
      alert(txt); 
     }); 
    } 
}); 
1

在你的代碼,你可以只使用parseJSON()。

 

    $.ajax({ 
    type: "POST", 
    url: "return.php", 
    dataType: "json", 
    data: "id=56", 
    success: function(data) { 
     var d = jQuery.parseJSON(data); 
     // ... do stuff 
    } 
    });