私は "jQuery"のgetJson()を理解しようとしています。 返される配列を変数に入れたいのですがわかりません。このコードのスタートボタンをクリックしたときに未定義になります。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]);
});
回答:
回答№1は1あなたがあなたの関数を呼び出すとき、そしてAjaxリクエストが完了していないときあなたの関数が戻るとき、Ajaxは非同期です null
あなたは遅延オブジェクトを使用する必要があります。属性セレクタが間違っていることに注意してください。 @
.
var difLevel = $("input[name=difLevel]:checked").val();
回答№2の場合は1
JSONの戻りデータは、指定したjson変数に入ります。ただし、JSONクエリは非同期なので、getGameData()関数が完了したときに応答が返されません。
あなたはそれを返す代わりに$ .getJSON(...)内のJSONデータを使用する必要があります。
回答№3の場合は0
私はあなたが "ゲームデータに関数を格納していると思います。あなたはgameData()で値にアクセスすることができるはずです