J'ai une boîte dropzone et j'y ai implémenté le triable. Comme mon formulaire se soumet avec html et non ajax, j'ai dû ajouter des entrées cachées où je pousse mes images sélectionnées avec dropzonejs pour pouvoir les récupérer en back-end.
Jusqu'à présent, tout ce que j'ai expliqué ci-dessus fonctionne
Numéro
Comme je l'ai mentionné, j'ai implémenté une fonctionnalité de tri dans dropzonejs et il trie les images dans la zone de dépôt, mais pas dans mon entrée cachée ajoutée
Afin d'obtenir des images triées dans le back-end, je dois appliquer ce triable dans mon entrée ajoutée également.
Código
HTML
//Drop zone box
<div class="dropzone" id="my-awesome-dropzone" action="#">
<div class="fallback">
<input name="cimages[]" type="file" multiple />
</div>
<div class="clearfix"></div>
</div>
// append hidden input include selected images for back-end use
<div id="botofform"></div>
Script
Dropzone.autoDiscover = false;
var myDropzone = new Dropzone("#my-awesome-dropzone", {
headers: {
"X-CSRF-TOKEN": $("meta[name='csrf-token']").attr("content")
},
autoProcessQueue : false,
acceptedFiles: ".jpeg,.jpg,.png,.gif",
dictDefaultMessage: "Drag an image here to upload, or click to select one",
maxFiles: 15, // Maximum Number of Files
maxFilesize: 8, // MB
addRemoveLinks: true,
dictRemoveFile: 'Remove',
dictFileTooBig: 'Image is bigger than 8MB',
// append hidden input and add selected images
accept: function(file) {
let fileReader = new FileReader();
fileReader.readAsDataURL(file);
fileReader.onloadend = function() {
let content = fileReader.result;
$('#botofform').append('<input type="hidden" class="cimages" name="cimages[]" value="'+ content +'">');
file.previewElement.classList.add("dz-success");
}
file.previewElement.classList.add("dz-complete");
}
});
// reorder images in dropzone box (need to get this results into "$('#botofform').append" above)
$(function(){
$(".dropzone").sortable({
items:'.dz-preview',
cursor: 'move',
opacity: 0.5,
containment: '.dropzone',
distance: 20,
tolerance: 'pointer',
});
});
Pregunta
- Comment puis-je appliquer des résultats triables dans mon entrée ajoutée ?
- Comment puis-je réduire
$('#botofform')
(entrées) lorsqu'une image est supprimée par dropzonejs ?