如何将getJSON值放入变量中

时间:2012-10-13 15:18:47

标签: jquery json

我正在尝试理解jQuery的getJson()。我想把它返回的数组放入变量put我不知道如何。当我点击此代码中的开始按钮时,我得到了未定义。我知道PHP文件中的所有内容都有效,所以我认为这个问题并不存在。

function getGameData(){
var difLevel = $("input[@name=difLevel]:checked").val();
var gameData = (function(){
    var json = null;
    $.getJSON('/Spelling4/core/proof_Test_JSON_process4.php',{difNo : difLevel},function(data){
        json = data;
    });
    return json;
});

return gameData;

}
$('#startButton').click(function(e) {
    var gameData = getGameData();
    e.preventDefault();
alert(gameData[1]);
});

3 个答案:

答案 0 :(得分:1)

Ajax是异步的,当你调用你的函数时,如果ajax请求没有完成,你的函数会返回null,你应该使用deferred对象。请注意,您的属性选择器错误,您应该删除@

var difLevel = $("input[name=difLevel]:checked").val();

答案 1 :(得分:1)

JSON返回数据将以您指定的json变量结束。但是,JSON查询是异步的,因此在getGameData()函数完成时尚未返回响应。

您需要在$ .getJSON(...)中使用JSON数据,而不是返回它。

答案 2 :(得分:0)

我认为你在游戏数据中存储了一个功能。您应该能够使用gameData()

访问这些值