Felix Riesterer: Geht doch nicht! :-/

Beitrag lesen

Lieber RobRobson,

myLocLatLng = false; //global! Wird in getGeoCode() geändert

das ist für mich ein ganz wesentlicher Design-Fehler. in JavaScript sind globale Variablen in der Regel ein Fehler, es sei denn sie bezeichnen größere Objekte, wie beispielsweise das "$"-Objekt.

$.post('index.php',{ geodaten:getGeoCode() },function(data){ $('#resultat').html(data); }); });


> Gibt in der index.php $\_POST[myLocLatLng] = false; zurück.  
> Ergo hat der $.post-Aufruf nicht auf die Funktion gewartet. :-/  
  
Und wieder mal ein klassischer Fall von "relevante Informationen zurückgehalten". Warum hast Du diese Umstände (globale Variable, was tut getGeoCode) nicht sofort in Deinem Eröffnungspost geschrieben?  
  
Es ist ja wohl offensichtlich (auch wenn Du den Code der Funktion noch immer krampfhaft verheimlichst), dass die Funktion getGeoCode keinen Rückgabewert liefert, sondern lediglich eine globale Variable beschreibt. Wieso kannst Du also behaupten, dass Dein $.post()-Aufruf nicht auf getGeoCode "gewartet" hätte?  
  
Und nocheinmal: Wo erwartest Du eine asynchrone Verarbeitung? Ist etwa in getGeoCode ein AJAX-Aufruf enthalten, den es zuerst abzuwarten gilt, bevor Deine Geodaten zum Versenden überhaupt bereit sind? Das wäre das Einzige, das mir in diesem Zusammenhang einleuchtet, warum Du hier auf "asynchron" bestehst.  
  
Liebe Grüße,  
  
Felix Riesterer.

-- 
ie:% br:> fl:| va:) ls:[ fo:) rl:| n4:? de:> ss:| ch:? js:) mo:} zu:)