Sto usando un ottimo plugin - dropzone.js (dropzonejs.com) per rendere il mio sito un po 'più elegante quando si registra un nuovo utente.Usare Dropzone.js per caricare dopo la creazione di un nuovo utente, inviare intestazioni
In pratica, l'utente compila un modulo, rilascia un paio di immagini nella "dropzone" e fa clic su "Invia", che attiva una chiamata ajax che invia il modulo a uno script php.
I parametri dropzone sono impostati su enqueForUpload: false, che mantiene i file dal caricamento automatico, poiché ho bisogno che vengano caricati in upload/$ id utente, dopo che è stato creato il nuovo ID utente. Posso dare i parametri di intestazione dropzone, che sto assumendo post all'url, simile a una chiamata ajax, invece di data: {'userid': userid}, dropzone usa le intestazioni: {'userid': userid} ... Tuttavia , dropzone viene inizializzato su document.ready e poiché la variabile userid non è ancora stata dichiarata, dropzone non riesce a inizializzarsi.
Suppongo che sarà necessario inizializzare dropzone con document.ready, ma non ancora fornire le intestazioni. Quindi, dopo che l'elaborazione del modulo ajax ha avuto esito positivo e restituisce userid, chiamare dropzone per caricarlo e assegnargli le intestazioni a quel punto. Il problema è che non so quale codice avrebbe bisogno di essere chiamato per farlo accadere.
inizializzazione Dropzone sul pronto:
$(document).ready(function(){
$('#dropzone').dropzone({
url: 'dropzoneprocess.php',
maxFilesize: 1,
paramName: 'photos',
addRemoveLinks: true,
enqueueForUpload: false,
});
});
Poi ...
$('#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' */
});
});
Sono curioso di vedere l'uso di '. append'. Non ho mai visto quel metodo utilizzato su un oggetto e perché non 'formData.name =" valore "' funziona? – NicolasMoise
ciao, non ho idea del motivo per cui non funziona, ma puoi trovare lo stesso risultato nell'articolo http://stackoverflow.com/questions/21942314/sending-additional-data-with-programatically-created-dropzone-using-the- inviando la risposta –
@NicolasMoise vedi https://developer.mozilla.org/en-US/docs/Web/API/FormData/append – enyo