将ajax数据存储在变量中

时间:2011-12-07 07:43:42

标签: jquery ajax

一个简单的ajax调用,php回应一些xml文本,我需要在JPA中出现myAJAXVariable。

我需要类似于php echo的东西,它只是打印数据。

我只是希望m​​yAJAXVariable显示来自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 个答案:

答案 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"
});

希望这有帮助。