2012-10-13 28 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()訪問值