[FRAGE] Wie kan ich zurückgegebene Daten (string) aus einem $.get([...]).done() herausholen?

NCRT

New member
Seit 2 Tagen arbeite ich nun mir Javascript und PHP und stehe vor folgendem Problem:

Javascript -
Code:
infostring = "";
alert("infostring vor Get: " + infostring );
$.get(urlGetInfoString,{input1: Var1, input2: var2})
  .done(function(data)
  {
  console.log(data);
  infostring  = data;
  alert("infostring im Get: " + infostring );
});
alert("infostring nach Get: " + infostring );

urlGetInfoString zeigt zu einer .php-Seite, in der die beiden Inputs verarbeitet werden und per echo letztenendes nur ein bestimmter String zurückkommt.

Erwartet hätte ich, dass die alerts in der reihenfolge zurückkommen, in der sie im Script stehen, leider kommt "alert("infostring nach Get: " + infostring );" vor "alert("infostring in Get: " + infostring );" zurück. Blöderweise steht in data nun genau der String, den ich brauche.

Ich stelle mich vermutlich an, wie der erste Mensch, kann mir trotzdem jemand helfen? Blöderweise habe ich im direkten Umfeld niemanden, der sich wirklich mit Javascript auskennt, sonst hätte ich erst rumgefragt, bevor ich ein Forum damit belaste.
 
Mit $.get() startest du ein AJAX - das a steht für asynchron. D.h. JS startet einfach nur das HTTP-Zeugs, wartet aber nicht, bis der Request angeschlossen ist, sondern macht einfach weiter im Text.

Du musst einen Programmfluss einfach so umbauen, dass alles, was von data abhängig ist, auch erst in dem done-Callback ausgeführt wird.
 
Thanks. I just had a wrong idea of this function. Looks like I'll just handle everything, that depends on the infostring within the .done() and make it a local var.
 
Zurück
Oben