2011-12-08 15 views
0

PHPスクリプトからエコー出力を返すAJAX文があります。出力はXMLです。AJAXデータ変数がロードされていません

PHPスクリプトに直接ナビゲートすると、必要な形式でJSONが出力されます。

AJAXリクエスト内の "data"変数は、Firebugネットワークタブに要求のステータス200 OKと表示されていますが、正しく返していません。

JPlayerスクリプトを投入するXML要素 "MP3やタイトルを" 返すPHP

<?php 
    $url = 'http://www.startalkradio.net/?page_id=354'; 
    $rss = simplexml_load_file($url); 
    $items = $rss->channel->item; 

    $i = 0; 
    $data = array(); 
    foreach ($items as $item) { 
     $data[] = array(
      'title' => (string) $item->title, 
      'mp3' => (string) $item->enclosure['url'], 
     ); 
     if (++$i == 3) break; 
    } 

    $jsdata = json_encode($data); 
    echo htmlspecialchars($jsdata, ENT_NOQUOTES, 'utf-8'); 
?> 

AJAX呼び出し。 dataが返されていないようです。

$(document).ready(function() { 
    $.get(
     "http://www.freeenergymedia.com/getxml2.php", 
     function(data) { 
      new jPlayerPlaylist({ 
       jPlayer: "#jquery_jplayer_1", 
       cssSelectorAncestor: "#jp_container_1" 
      }, 
      data, 
      {  <!-- here I am returning the php script to populate XML into JPlayer. --> 
       swfPath: "js", 
       supplied: "mp3, oga", 
       wmode: "window" 
      }); 
     } 
    ); 
}); 

ここ

問題

linkは、XMLはあなたがXMLを返すが、していると言う link

+1

は、あなたがXMLとしてデータ型をspeicfyしようとしたことがあり:

//using '$.getJSON()' will set the dataType property to json so your server-side output will be parsed into a JavaScript object $.getJSON( "http://www.freeenergymedia.com/getxml2.php", function(data) { console.log(data);//<--use this to inspect the JSON object returned from the server, make sure it's in the proper format new jPlayerPlaylist({ jPlayer: "#jquery_jplayer_1", cssSelectorAncestor: "#jp_container_1" }, data, { <!-- here I am returning the php script to populate XML into JPlayer. --> swfPath: "js", supplied: "mp3, oga", wmode: "window" }); } ); 

dataは次のようになります。だからあなたの$.get()呼び出しがあることを指定する必要がありますか? http://api.jquery.com/jQuery.get/、4番目のパラメータはdataTypeです。 $ .ajaxメソッドに切り替えて、エラーイベントをバインドすることもできます。また、console.log(data);あなたの関数の内部で、その応答が何であったかを確認します。 –

+0

今しようとしました –

+0

http://www.freeenergymedia.com/getxml2.phpがXMLではなくJSONを返しています。 –

答えて

1

PHPスクリプトから出力されたものと同じであることをメモして動作しますバージョンですPHPはjson_encode()を使用します。

data = [ 
    {"title":"some title", "mp3":"path to some song"}, 
    {"title":"some other title", "mp3":"path to some other song"}, 
    etc... 
]; 
+0

$ .getメソッドを使うと、ユーザーは "data"を期待するフォーマットを指定することができます。$ getgetSS $と$ .getは$ getを使用するときにdataTypeが指定されている限り動作します –

関連する問題