2011-02-05 4 views
1

jQueryからPHPで生成されたJavaScript配列を返すためにAjax呼び出しを取得しようとしていますが、アクセスできません。ここで私はやっているものです:jQuery:Ajaxコールバックからjavascript配列を返します。

  1. 私は次のコードのonLoadを実行します。以下の(retrieve.phpは、書式設定を行い、そしてそれをエコー返し $(function() { jQuery.ajax({ url: 'retrieve.php', success: function(data) { }, async: false }, "script");

  2. 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は適切なcontent-typeヘッダを設定する必要があります – jerluc

+0

私はajax-callでjsonに切り替えようとしました(また 'retrieve.phpから' var data = 'を削除しました。 ? jsonのための特定のものはありますか? – OleVik

答えて

1

名前にオブジェクトを割り当てるJavaScript文字列ではなく、オブジェクトだけを返す必要があります。これはJSONレスポンスではありません。

オブジェクトを使用するコードは、別のコードではなく、ajax呼び出しの成功ハンドラにある必要があります。

+0

私は 'var data = 'の部分を削除し、' $( "#placeholder")text(data.playlist [0] ["title"]); 'コールバックへのコードreturn "json")を呼び出します。それでも "未定義"が返されますが、何がうまくいかないのですか? – OleVik

+0

firebugやchromeに組み込まれた開発ツールなど、javascriptデバッガを使用する方法を学ぶ時間。 –

+0

私はFirebugを使用しており、retrieve.phpの "data"レスポンスは有効ですが、コールバック内ではまだアクセスできません(例えば '$("#placeholder ")のように)。text(data.playlist [0] ["title"]); ') – OleVik

0

おそらくあなたのデータにアクセスする必要があります。オブジェクト表記:

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

これは結果に関しては何の違いもないように見えますが、どちらも" undefined "を返します。 – OleVik

関連する問題