0

jQuery の getJson() を理解しようとしています。返される配列を変数 put に入れたいのですが、方法がわかりません。このコードで開始ボタンをクリックすると undefined になります。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]);
});
4

3 に答える 3

1

Ajaxは非同期です。関数を呼び出すと、ajaxリクエストが完了していない場合、関数が返さnullれる場合は、遅延オブジェクトを使用する必要があります。属性セレクターが間違っていることに注意してください@

var difLevel = $("input[name=difLevel]:checked").val();
于 2012-10-13T15:23:16.283 に答える
1

JSON の戻りデータは、指定した json 変数になります。ただし、JSON クエリは非同期であるため、getGameData() 関数が完了したときに応答が返されていません。

JSON データを返すのではなく、 $.getJSON(...) 内で使用する必要があります。

于 2012-10-13T15:23:42.807 に答える
0

ゲームデータに関数を保存していると思います。gameData() で値にアクセスできるはずです

于 2012-10-13T15:25:18.607 に答える