2011-02-05 278 views
1

我想從jQuery獲得一個Ajax調用,以返回由PHP生成的JavaScript數組,但無法獲取它。下面是我在做什麼:jQuery:從Ajax回調JavaScript數組返回

  1. 我運行下面的代碼的onLoad: $(function() { jQuery.ajax({ url: 'retrieve.php', success: function(data) { }, async: false }, "script");

  2. retrieve.php返回以下(retrieve.php做的格式,並呼應出來): var data = { "info" : [{ "title": "Title", "description": "Description" }], "playlist" : [ { "title": "In This Place", "subTitle": "Excalibur", "href": "http://localhost/manger/ny/#desemberkonsert_in-this-place", "url": "../flv/desemberkonsert/21_in_this_place.flv", "thumbnail": "../flv/desemberkonsert/21_in_this_place_thumbnail.png", "time": "5:39" }, { "title": "Black Hole", "subTitle": "Excalibur", "href": "http://localhost/manger/ny/#desemberkonsert_black-hole", "url": "../flv/desemberkonsert/22_black_hole.flv", "thumbnail": "../flv/desemberkonsert/22_black_hole_thumbnail.png", "time": "4:26" }] }

  3. 然後我嘗試使用例如訪問此代碼:$("#placeholder").text(data.playlist[0]["title"]);

  4. 這將返回爲「未定義」

陣列不允許工作時,我複製並直接粘貼到文件,但是當一個回調返回失敗。我如何訪問返回的數組?

+0

爲什麼不把它作爲JSON返回?此外,您的PHP將不得不設置適當的內容類型標題 – jerluc 2011-02-05 19:47:09

+0

我試着將它切換到json的ajax調用(也從retrieve.php中刪除'var data ='),我將它設置爲content-type ? json有特定的嗎? – OleVik 2011-02-05 20:39:28

回答

1

您應該只返回該對象,而不是將該對象指定給名稱的JavaScript字符串。這不是JSON響應。

您使用該對象的代碼應位於ajax調用的成功處理程序中,而不是其他位置的單獨代碼。

+0

我刪除了'var data ='部分,並將我的`$(「#placeholder」)。text(data.playlist [0] [「title」]);`代碼移入回調函數(也告訴ajax調用返回「json」)。它仍然返回「未定義」,但是,出了什麼問題? – OleVik 2011-02-05 20:38:15

0

您可能需要使用[]符號訪問您的數據,而不是。對象表示法:

 
data["playlist"][0]["title"]