Używam świetnej wtyczki - dropzone.js (dropzonejs.com), aby moja strona była trochę bardziej wymyślna podczas rejestracji nowego użytkownika.Używanie Dropzone.js do przesyłania po utworzeniu nowego użytkownika, wysyłanie nagłówków
Zasadniczo użytkownik wypełnia formularz, upuszcza kilka obrazów do "strefy upuszczania" i klika "Wyślij", który uruchamia wywołanie ajax, które wysyła formularz do skryptu php.
Mam parametry dropzone ustawione na enqueForUpload: false, co zapobiega automatycznemu przesyłaniu plików, ponieważ muszę je przesłać do uploadów/$ userid po utworzeniu nowego identyfikatora użytkownika. Mogę podać parametry nagłówków dropzone, które zakładam, że będą publikowane w url, podobnie jak w wywołaniu ajax, zamiast danych: {'userid': userid}, dropzone używa nagłówków: {'userid': userid} ... jednak , dropzone zostaje zainicjalizowane na document.ready, a ponieważ zmienna userid nie jest jeszcze zadeklarowana, dropzone nie może się zainicjować.
Zgaduję, że będę potrzebować zainicjować zrzut strefy z document.ready, ale nie daję jeszcze nagłówków. Następnie po pomyślnym przetworzeniu formularza ajax i zwróceniu userid, wywołaj dropzone do przesłania i nadaj mu nagłówki w tym miejscu. Problem polega na tym, że nie wiem, jaki kod musiałby zostać wywołany, aby to się stało.
Initialize Dropzone na gotowe:
$(document).ready(function(){
$('#dropzone').dropzone({
url: 'dropzoneprocess.php',
maxFilesize: 1,
paramName: 'photos',
addRemoveLinks: true,
enqueueForUpload: false,
});
});
Potem ...
$('#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' */
});
});
jestem ciekawy co do użycia '. dopisz ". Nigdy nie widziałem tej metody używanej na obiekcie i dlaczego 'formData.name =" value "' działa? – NicolasMoise
Witam, nie mam pojęcia, dlaczego to nie działa, ale można znaleźć to samo w artykule http://stackoverflow.com/questions/21942314/sending-additional-data-w-programowo-instalowanym-zielonym-używaniu-- wysyłając odpowiedź: –
@NicolasMoise zobacz https://developer.mozilla.org/en-US/docs/Web/API/FormData/append – enyo