Senden Sie Header, wenn Sie Dropzone.js zum Hochladen nach der Erstellung eines neuen Benutzers verwenden

Ich verwende ein großartiges Plugin - dropzone.js (dropzonejs.com), um meine Website bei der Registrierung eines neuen Benutzers ein wenig ausgefallener zu gestalten.

Grundsätzlich füllt der Benutzer ein Formular aus, legt ein paar Bilder in der "Dropzone" ab und klickt auf "Submit", wodurch ein Ajax-Aufruf ausgelöst wird, der das Formular in ein PHP-Skript schreibt.

Ich habe die dropzone-Parameter auf enqueForUpload: false gesetzt, wodurch das automatische Hochladen der Dateien verhindert wird, da sie nach dem Erstellen der neuen Benutzer-ID in uploads / $ userid hochgeladen werden müssen. Ich kann dropzone-Header-Parameter angeben, von denen ich annehme, dass sie ähnlich wie bei einem Ajax-Aufruf an die URL gesendet werden, anstatt an die Daten: {'userid': userid}, dropzone verwendet die Header: {'userid': userid} ... Allerdings dropzone wird in document.ready initialisiert, und da die Variable userid noch nicht deklariert ist, kann dropzone nicht initialisiert werden.

Ich schätze, ich muss dropzone mit document.ready initialisieren, aber noch nicht mit Headern. Wenn die Verarbeitung des Ajax-Formulars erfolgreich ist und die Benutzer-ID zurückgibt, rufen Sie dropzone auf, um es hochzuladen, und geben Sie ihm an diesem Punkt die Überschriften. Das Problem ist, dass ich nicht weiß, welcher Code aufgerufen werden muss, um dies zu erreichen.

Initialisiere Dropzone auf Ready:

$(document).ready(function(){
  $('#dropzone').dropzone({
    url: 'dropzoneprocess.php',
    maxFilesize: 1,
    paramName: 'photos',
    addRemoveLinks: true,
    enqueueForUpload: false,
  });
});

Dann...

$('#submit').on('click', function(){
    validation crap here
    $.ajax({
        type: 'post',
        url: 'postform.php',
        data: {'various': form, 'values': here}
        datatype: 'json',
        success: function(data){
           var userid = data.userid;

    /* (and this is what I can't figure out:)
    tell dropzone to upload, and make it 
    post userid to 'dropzone.php' */

     });
});

Antworten auf die Frage(2)

Ihre Antwort auf die Frage