Salve , ho un form e un dropzone che in fase di upload invia i dati all'onsending dei file di dropzone ad un o script php che salva tutto in un db :
In fase di edit , dovrei controllare che i file siano diversi da quelli già salvati nel db , nel caso siano cambiati posso utilizzare sempre l'onsending altrimenti andrebbero mandati via ajax al click , come posso controllare che i file siano quelli già salvati ?codice:if (document.getElementById('myDropzone')) { var drz = new Dropzone("#myDropzone", { url: "{{route('userLibri.update',['id'=>$record->id])}}", autoProcessQueue: false, uploadMultiple: true, paramName: "file", clickable: true, maxFilesize: 10, //in mb addRemoveLinks: true, acceptedFiles: ".jpeg,.jpg,.png,.gif", dictDefaultMessage: "Clicca o trascina il tuo file QUI ", maxFiles: 3, parallelUploads: 3, //di default è 2 se non settato e carica solamente 2 file init: function() { var myDropzone = this; // In edit @php $n=0; foreach ($lista_immagini_libri as $v) : @endphp let mockFile_immagini_libri{{$n}} = { name: '{{$v->nome_file}}', size: 12345 ,nome_file_originale:'{{$v->token_nome_file_originales }}'}; myDropzone.displayExistingFile(mockFile_immagini_libri{{$n}}, '/uploads/immagini_libri/{{Auth()->user()->id}}/{{$record->id}}/{{ $v->nome_file }}'); $('.dz-upload:last-child').attr('style', 'width:100%'); @php $n++; endforeach; @endphp $('#button_metti_in_vendita').on("click", function() { var id_users =$('#id_users').val(); var titolo = $('#id_class_titolo').val() ; var codice_isbn= $('#id_class_codice_isbn').val() ; var autore= $('#id_class_autore').val() ; var id_stati_conservazione = $('#id_id_stati_conservazione').val(); var note= $('#id_class_note').val(); //numero file nella dropzone var numero_file_dropzone =$("#myDropzone").find(".dz-image").length; //se non ho titolo if(titolo=='' || titolo==null){ var message ='Non hai inserito il titolo!!!'; $('#alertModal').find('.modal-body h3').text(message); $('#alertModal').modal('show'); }else if(codice_isbn=='' || codice_isbn==null){ var message ='Non hai inserito il codice isbn!!!'; $('#alertModal').find('.modal-body h3').text(message); $('#alertModal').modal('show'); }else if(autore=='' || autore==null){ var message ='Non hai inserito l\'autore!!!'; $('#alertModal').find('.modal-body h3').text(message); $('#alertModal').modal('show'); }else if(id_stati_conservazione=='' || id_stati_conservazione==null ) { var message ='Non hai selezionato nessuno stato di conservazione!!!'; $('#alertModal').find('.modal-body h3').text(message); $('#alertModal').modal('show'); }else if(!numero_file_dropzone) { var message ='Non hai inserito nessun file!!!'; $('#alertModal').find('.modal-body h3').text(message); $('#alertModal').modal('show'); }else{//se non ho nessun errore procedo alert('pulsante premuto'); var myDropzone = Dropzone.forElement(".dropzone"); myDropzone.processQueue(); } }); this.on("sending", function(file, xhr, formData){ console.log("sending file"); formData.append("id",'{{$record->id}}' ); formData.append("_token",'{{csrf_token()}}' ); formData.append("_method",'PATCH' ); formData.append("id_users", {{ $user->id}} ); formData.append("titolo", $('#id_class_titolo').val() ); formData.append("codice_isbn", $('#id_class_codice_isbn').val() ); formData.append("autore", $('#id_class_autore').val() ); formData.append("id_stati_conservazione" ,JSON.stringify( $('#id_id_stati_conservazione').val() ) ); formData.append("prezzo" , $('#id_class_prezzo').val()); formData.append("note", $('#id_class_note').val() ); }); this.on("success", function(file, response) { console.log('great success'+response); if(response.success == 0){ // Error var message =response.error; $('#alertModal').find('.modal-body h3').html(message); $('#alertModal').modal('show'); var myDropzone = Dropzone.forElement(".dropzone"); myDropzone.removeFile(file); } if(response.success == 2){ //alert(response.message); //senza errori mostro il modal $("#successModal").modal("toggle"); } }); this.on("addedfile", function(file){ if(this.files.length>3){ this.removeFile(file); }else{ console.log('file added'); } }); } }); };

Rispondi quotando
