2011-12-07 86 views
0

一个简单的ajax调用,php回声一些xml文本,我需要在JPayer中出现myAJAXVariable所在的位置。在变量中存储ajax数据

我需要一些类似于PHP的回声,它只是打印数据。

我只是想myAJAXVariable显示来自getxml2.php

$(document).ready(function() { 



    var myAJAXVariable = $.get("http://www.freeenergymedia.com/getxml2.php", function(data){ 
return data; <!--here I am attempting to print the contents of getxml2.php as data--> 
}); 



    new jPlayerPlaylist({ 
     jPlayer: "#jquery_jplayer_1", 
     cssSelectorAncestor: "#jp_container_1" 
    }, myAJAXVariable, { 
     swfPath: "js", 
     supplied: "mp3, oga", 
     wmode: "window" 
    }); 

}); 

回答

2

数据由于AJAX(这是第一个A代表),你应该消耗的AJAX调用的结果的异步特性只成功回调里面,否则数据将还没有被初始化:

$(document).ready(function() { 
    $.get("http://www.freeenergymedia.com/getxml2.php", function(data) { 
     // Only here you should use the data variable as it is here and only here 
     // that it is assigned 

     new jPlayerPlaylist({ 
      jPlayer: "#jquery_jplayer_1", 
      cssSelectorAncestor: "#jp_container_1" 
     }, data, { 
      swfPath: "js", 
      supplied: "mp3, oga", 
      wmode: "window" 
     }); 
    }); 
}); 

,或者创建一个功能:

var initializejPlayer = function(data) { 
    new jPlayerPlaylist({ 
     jPlayer: "#jquery_jplayer_1", 
     cssSelectorAncestor: "#jp_container_1" 
    }, data, { 
     swfPath: "js", 
     supplied: "mp3, oga", 
     wmode: "window" 
    }); 
} 

然后触发AJAX调用:

$(document).ready(function() { 
    $.get("http://www.freeenergymedia.com/getxml2.php", initializejPlayer); 
}); 
+0

@alex_borsody,在成功回调中,传递给匿名函数的'data'变量将包含执行'getxml2.php'的结果。这就是说,你应该知道相同的源策略限制,它阻止你发送AJAX请求到不同于发起域的域。因此,如果“www.freeenergymedia.com”不是您托管应用程序的域名,则无法向其发送AJAX请求。 –

1

你也可以考虑使用AJAX方法(这是比得到更多的配置,看这个线程Difference between $.ajax() and $.get() and $.load()形式的更多详细信息)写自己'的getData”功能。然后你可以使用你的函数来检索代码中的数据。

我个人使用此代码从URL中检索JSON数据,在我的Backbone.js的应用程序:

function getJSONData(myurl) 
var data; 
$.ajax({ 
    async: false, //thats the trick 
    url: myurl, 
    dataType: 'json', 
    success: function(response){ 
     data = response; 
     } 
    }); 
return data; 
} 

你可以使用不同的数据类型(XML,JSON,脚本或HTML),如果你需要(看这里http://api.jquery.com/jQuery.ajax/) ,然后在你的情况,你可以在PlayerPlaylist对象使用它:

new jPlayerPlaylist({ 
    jPlayer: "#jquery_jplayer_1", 
    cssSelectorAncestor: "#jp_container_1" 
}, getJSONData("http://www.freeenergymedia.com/getxml2.php"), { 
    swfPath: "js", 
    supplied: "mp3, oga", 
    wmode: "window" 
}); 

希望这有助于。