Ajax-Request in Schleife mit jQuery

aurus

Mitglied
Hallo, ich bins mal wieder ;)

Ich versuche mich seit kurzem an Ajax-Requests, stehe hier aber vor einem kleinen Problem. Ein PHP-Skript holt aus einer Datenbank verschiedene Datensätze und kodiert die zu einen JSON-String. Im Moment sind das vielleicht so 10 Datensätze. Bestehend aus ID und Inhalt.

Dafür versuche ich jetzt eine jQuery-Funktion zu schreiben. So siehts im Moment aus:

Code:
function getText(){
    
    $.getJSON("getText.php",
        function(data){
            for(key in data){
                //alert(key);
                $("#wrapper").fadeOut(800).html(data[key]).fadeIn(800);
            }
    });
    alert("Ende");
}

Was sie machen soll: Sie soll einmal aufgerufen werden. Dann holt sie den JSON-String und gibt einmal alles aus, was drin ist. Dann (im Testskript oben) wird Ende ausgegeben. Normalerweise soll sie sich dann nochmal aufrufen. Das habe ich mit setTimeout() versucht, hier aber erst einmal weggelassen.

Im Prinzip funktioniert alles soweit. Aber nur wenn ich in der for-Schleife die alert-Meldung nicht auskommentiere. Dann kann ich immer schön weiterklicken und sehe im Hintergrund die eigentlichen Daten sich ändern. Ohne alert sehe ich aber keine Veränderung bzw. nur den ersten oder letzten des JSON-Strings.

Bevor überhaupt irgendetwas angezeigt wird, ist die Schleife wahrscheinlich schon einmal durch. Wie kann ich das verhindern? Bzw. das so umsetzen wie ich möchte?

Danke schon mal für eure Hilfe :)
 
Mit ".html()" überschreibst du ja jedesmal in der Schleife den Inhalt des Containers.
Hier wäre ".append()" warscheinlich die bessere wahl.
 
Zurück