Ich brauche Hilfe bei der Suche nach einer Alternative zu synchronem jQuery-Ajax

Ich habe eine sehr komplexe Form, die mehrere Registerkarten enthält. Jede Registerkarte enthält eine eindeutigePlupload Instanz (zum Hochladen mehrerer Bilder). Das Formular ermöglicht es einem Benutzer, einen medizinischen Bild- "Fall" hochzuladen, bei dem jeder Fall aus mehreren bildgebenden "Studien" (z. B. CT-Scans) besteht und jede Studie mehrere Bilder enthält.

Wenn der Benutzer auf die Schaltfläche "Senden" klickt, fange ich den Klick mit jQuery ab, weil ich Folgendes tun muss:

Überprüfen Sie, ob die erforderlichen Felder eingegeben wurden[einfach]Holen Sie sich eine eindeutige ID-Nummer von meinem Server. Diese ID-Nummer wird von jeder Plupload-Instanz benötigt, um zu wissen, in welches Verzeichnis hochgeladen werden soll.

In meiner Funktion, die beim Absenden des Formulars aufgerufen wird, habe ich den folgenden Codeausschnitt:

var case_id;

// Code to check the required fields are entered
....

// Get the case id number from the server
$.get('ajax/unique-case-id').done(function(data){
    case_id = data;
});

// do something with case_id and other things. MUST happen after the ajax call
....

// if there was a problem uploading the images, stop the form from submitting
if (problem_occured) {
    return false;
}

Bei meiner aktuellen Logik muss das Skript angehalten werden, bis case_id angezeigt wird. Dies war vor jQuery 1.8 möglich, aber die Eigenschaft $ .ajax () async: false wurde verworfen.

Meine Frage ist zweifach:

Gibt es eine Möglichkeit, das Skript anzuhalten, bis ich die erforderliche case_id erhalte?Wenn nicht, eine Idee, wie ich meine Logik ändern könnte, um dies zu umgehen?

Sie fragen sich vielleicht, warum case_id so wichtig ist. Die plupload-Instanzen laden sie hoch, bevor das Formular gesendet wird, und sie benötigen ein Verzeichnis, in das sie hochladen können. Ich möchte, dass die hochgeladenen Bilder in einen Ordner namens case_id auf meinem Server verschoben werden. Auf diese Weise kann das PHP-Skript auf dem Server herausfinden, was mit ihnen zu tun ist, sobald der Rest der vom Formular bereitgestellten Daten eingegangen ist.

Antworten auf die Frage(1)

Ihre Antwort auf die Frage