一个简单的ajax调用,php回应一些xml文本,我需要在JPA中出现myAJAXVariable。
我需要类似于php echo的东西,它只是打印数据。
我只是希望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"
});
});
答案 0 :(得分: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);
});
答案 1 :(得分:1)
你也可以考虑使用ajax方法(比get更可配置,读取这个线程Difference between $.ajax() and $.get() and $.load()形成更多细节)来编写你自己的`getData&#39;功能。然后,您可以使用您的函数来检索代码中的数据。
我个人使用此代码从我的backbone.js app中的url中检索json数据:
function getJSONData(myurl)
var data;
$.ajax({
async: false, //thats the trick
url: myurl,
dataType: 'json',
success: function(response){
data = response;
}
});
return data;
}
如果需要,可以使用不同的数据类型(xml,json,script或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"
});
希望这有帮助。