2 Stimmen

Ajax-Aufruf innerhalb einer jQuery-Schleife

Hier ist eine Funktion, die ich schreiben muss, um eine XML-Datei durch einen Ajax-Aufruf zu schreiben. Der Code funktioniert gut, wenn der Ajax-Aufruf zum ersten Mal gemacht wird. Beim zweiten Durchlauf wird der Ajax-Aufruf überhaupt nicht gemacht. Ich weiß nicht warum. Ich habe asyn auf false festgelegt. Das hat nicht geholfen. Das scheint sowieso nicht das Problem zu sein.

$('#'+divid).children('div').children('div').each(function () {

    var url = $(this).find('a');
    var urlname = url.text();
    var urllink = url.attr('href');
    var urlid = $(this).attr('id');

    alert ("von Javascript urlid: "+urlid+" urlname: "+urlname+" urllink: "+urllink);

          $.ajax({
             url: "add_url.php",
             type: "POST",
             data: { nodeid: divid, urlid: urlid, urlname: urlname, urllink: urllink },
             cache: false,
             async: false, 
             success: function (response) {
             if (response != '') 
                {
                    alert(response);
                 }
             }
         });
});

1voto

genesis Punkte 49257

Dies funktioniert wirklich für mich

http://jsfiddle.net/genesis/DTjZQ/4 (3 POST-Anfragen gesendet mit Antwortstatus 404)

Stellen Sie sicher, dass Ihr HTML gut ist und die gleiche Struktur wie in meinem Fiddle hat

0voto

Corbin Punkte 32582

Statt mehrerer AJAX-Anfragen zu stellen, schlage ich vor, die Daten an ein Array anzuhängen und dann das gesamte Array von Objekten zu senden.

(Grundsätzlich würde das wörtliche Objekt, das du für die Daten verwendest, an ein Array angehängt anstatt in einer Anfrage verwendet werden, und sobald die Schleife fertig ist, würdest du das Array als Daten senden.)

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X