ปัญหาของฉันคือฉันต้องรวมแบบฟอร์มปกติเข้ากับ dropzone.js เพื่ออัปโหลดแบบลากและวาง หลังจากที่ผู้ใช้คลิกปุ่มส่งคำขอ ajax จะส่งข้อมูลไปยัง php-script หากมีค่าในอินพุต
แต่รูปแบบเดิมของฉันเรียกใช้ฟังก์ชัน onSave เพื่อตรวจสอบความถูกต้องของข้อมูลอินพุต ถ้าฉันส่งแบบฟอร์มพร้อมโค้ดด้านล่าง วิธี POST จะส่งข้อมูลได้อย่างสมบูรณ์ แต่จะไม่เรียก onSave ไม่มีอะไรเกิดขึ้น
ฉันจะแก้ไขโค้ดเพื่อเรียก onSave ได้อย่างไรหลังจากอัปโหลดไฟล์แล้ว
<?php
function onSave(){
//validate and save to database
}
?>
<form method="POST" action="item/create" accept-charset="UTF-8" data-request="onSave" class="dropzone" enctype="multipart/form-data" id="mydropzone">
//inputs
<div id="dropzonePreview" class="dropzone dropzonePreview">
<div class="dz-default dz-message"><button class="dz-button" type="button">Drop files here to upload</button></div>
</div>
//more inputs
<button type="submit" class="btn btn-success save">Send</button>
</form>
<script type="text/javascript">
Dropzone.autoDiscover = false;
$( document ).ready(function () {
Dropzone.autoDiscover = false;
$("#mydropzone").dropzone({
autoProcessQueue: false,
uploadMultiple: true,
previewsContainer: '#dropzonePreview',
clickable: false,
accept: function(file, done) {
console.log("uploaded");
done();
},
error: function(file, msg){
alert(msg);
},
// The setting up of the dropzone
init: function() {
var myDropzone = this;
this.element.querySelector("button[type=submit]").addEventListener("click", function(e) {
e.preventDefault();
e.stopPropagation();
myDropzone.processQueue();
//it's send form, but not call onSave function
});
}
});
});
</script>