/ / Wie man getJSON-Werte in eine Variable schreibt -

Wie man getJSON-Werte in eine Variable schreibt - jquery, json

Ich versuche, jQuery's GetJson () zu verstehen. Ich möchte das Array, das es zurückgibt, in eine Variable schreiben. Ich weiß nicht, wie. Ich bekomme undefiniert, wenn ich in diesem Code auf den Start-Button klicke Gibt es.

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

Antworten:

1 für die Antwort № 1

Ajax ist asynchron, wenn Sie Ihre Funktion aufrufen und wenn die Ajax-Anforderung nicht abgeschlossen ist, kehrt Ihre Funktion zurück null Sie sollten ein verzögertes Objekt verwenden. Beachten Sie, dass Ihre Attributauswahl falsch ist. Entfernen Sie das @.

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

1 für die Antwort № 2

Die JSON-Rückgabedaten landen in der von Ihnen angegebenen Json-Variablen. Die JSON-Abfrage ist jedoch asynchron, sodass die Antwort nicht zurückgegeben wurde, wenn die getGameData () - Funktion abgeschlossen ist.

Sie müssen die JSON-Daten innerhalb von $ .getJSON (...) verwenden, anstatt sie zurückzugeben.


0 für die Antwort № 3

Ich denke, Sie speichern eine Funktion in gamedata. Sie sollten mit gameData () auf die Werte zugreifen können.