Ich denke, das ist, was Sie gemeint:
$(document).ready(function() {
var questions = [];
$.getJSON("http://localhost:8080/audioMillionaire/test2.php", function(result) {
$.each(result, function(i, item) {
questions.push([result[i].qid, result[i].description, result[i].a]);
});
});
});
Wenn nicht, bitte kommentieren.
Edit: BenM war schneller
Edit:
Dies funktioniert auch, aber ich kann außerhalb von
Diese $ .getJSON
das Array nicht verwenden, weil Sie wahrscheinlich verwenden Code wie folgt:
...
questions.push([result[i].qid, result[i].description, result[i].a]);
});
});
console.log(questions);
Da Javascript eine asynchrone Sprache ist, erfolgt der Konsolenprotokollaufruf vor dem Push, nachdem der JSON angefordert wurde. Sie können mehr darüber lesen here.
$(document).ready(function() {
console.log("set test to old");
var test = "old";
setTimeout(function() {
console.log("set test to new");
test = "new";
console.log("inside timeout: " + test);
}, 3000); // runs in 3 seconds
console.log("outside timeout: " + test);
});
Dieser Code sollte ein gutes Beispiel liefern. Die Funktion setTimeout wartet nur 3 Sekunden und führt die Funktion aus (ähnlich der json-Anfrage).
Mit diesem Wissen sollten Sie selbst eine Lösung finden (wie zum Beispiel eine übergebene Funktion, nachdem das Array gedrückt wurde). Wenn nicht kommentieren.
Edit: Geänderter Link zu anderen, besseren Seite.
In Ihrem Beispiel ist 'questionJ' eine Zeichenfolge. Bitte zeigen Sie uns Ihre 'setArray()' Funktion. – BenM