ส่งดรอปโซนพร้อมฟังก์ชั่นการโทร

ปัญหาของฉันคือฉันต้องรวมแบบฟอร์มปกติเข้ากับ 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>

person hatasu    schedule 17.11.2020    source แหล่งที่มา


คำตอบ (1)


คุณพยายามเรียกใช้ฟังก์ชัน onSave() หรือไม่

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
              <?php  onSave();  ?> // <----
            });
person Tech Spot    schedule 17.11.2020
comment
แต่ onSave เป็นฟังก์ชัน php - person hatasu; 18.11.2020