2012-10-13 24 views
0

我想了解jQuery的getJson()。我想把它返回的数组放到变量中,我不知道如何。当我单击此代码中的开始按钮时,我得到未定义。我知道PHP文件中的所有内容都能正常工作,所以我不认为这些内容是存在的。如何将getJSON值放入一个变量

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]); 
}); 

回答

1

阿贾克斯是异步的,当你调用你的函数,如果Ajax请求未完成你的函数返回null你应该使用延迟对象。请注意,您的属性选择器是错误的,您应该删除@

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

为什么你说我需要删除@?到目前为止,它一直在正常工作。感谢您的答复。 –

1

JSON返回数据将以您指定的json变量结束。但是,JSON查询是异步的,所以当getGameData()函数完成时,响应没有返回。

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

0

我想你在gamedata中存储了一个函数。你应该能够通过gameData()访问值