SonMiko
Erfahrenes Mitglied
Die Überschrift benennt eigentlich genau mein Problem:
Ich rufe in einer Funktion eine andere auf, welche dafür verantwortlich ist,
dass Daten geladen und als JSON Objekt zurückgeliefert werden.
Blöderweise ist die Rückgabe beim sofortigen Aufruf immer undefined,
und ich tippe mal darauf dass das daran liegt, dass zu dem Zeitpunkt der Ausgabe,
die Rückgabe noch gar nicht erfolgt ist.
Wie kann ich in meiner Funktion nun sagen: Warte bis die Rückgabe der anderen Funktion
ein Objekt ist (und nicht undefined) - oder gibt es grundsätzlich Standardfunktionen
die prüfen ob geladen wurde oder nicht?
Ich erinnere mich an diese Problematik als ich noch mit Flash entwickelt habe.
Hier gab es einen Kontrollaufruf der sich "isLoaded" nannte...
Schön wäre natürlich wenn ich in meiner Lade-Funktion, das weitermachen der anderen Funktion
unterbinden kann, bis zuende geladen wurde...
Hier mal ein Ausschnitt vom Code:
Das PHP Script funktioniert, und ich hab auch schon innerhalb der Funktion getData ein Alert auf dataObj.ausgabe1 gemacht, was die korrekten Daten ausgibt.
Für Ideen wäre ich sehr dankbar...
Ich habe auch bereits vor den Ablauf der anderen Funktion ein $("body").ajaxComplete(); gesetzt und den Rest der Funktion als Callback definiert, was leider auch nicht funktionierte.
Ist der Aufruf meineDaten.ausgabe1 eventuell falsch oO - wenn ich doch direkt das JSON Objekt zurückliefere****?
Ich rufe in einer Funktion eine andere auf, welche dafür verantwortlich ist,
dass Daten geladen und als JSON Objekt zurückgeliefert werden.
Blöderweise ist die Rückgabe beim sofortigen Aufruf immer undefined,
und ich tippe mal darauf dass das daran liegt, dass zu dem Zeitpunkt der Ausgabe,
die Rückgabe noch gar nicht erfolgt ist.
Wie kann ich in meiner Funktion nun sagen: Warte bis die Rückgabe der anderen Funktion
ein Objekt ist (und nicht undefined) - oder gibt es grundsätzlich Standardfunktionen
die prüfen ob geladen wurde oder nicht?
Ich erinnere mich an diese Problematik als ich noch mit Flash entwickelt habe.
Hier gab es einen Kontrollaufruf der sich "isLoaded" nannte...
Schön wäre natürlich wenn ich in meiner Lade-Funktion, das weitermachen der anderen Funktion
unterbinden kann, bis zuende geladen wurde...
Hier mal ein Ausschnitt vom Code:
Javascript:
function irgendwas(){
var meineDaten = getData();
alert(meineDaten.ausgabe1);
}
function getData(){
$.post("getdata.php",{
},function(data){
var dataObj = $.parseJSON(data);
return dataObj;
});
}
irgendwas();
Das PHP Script funktioniert, und ich hab auch schon innerhalb der Funktion getData ein Alert auf dataObj.ausgabe1 gemacht, was die korrekten Daten ausgibt.
Für Ideen wäre ich sehr dankbar...
Ich habe auch bereits vor den Ablauf der anderen Funktion ein $("body").ajaxComplete(); gesetzt und den Rest der Funktion als Callback definiert, was leider auch nicht funktionierte.
Ist der Aufruf meineDaten.ausgabe1 eventuell falsch oO - wenn ich doch direkt das JSON Objekt zurückliefere****?
Zuletzt bearbeitet von einem Moderator: