Отправка dropzone с функцией вызова

#javascript #php #request #dropzone.js #dropzone

#javascript #php #запрос #dropzone.js #dropzone

Вопрос:

Моя проблема в том, что я должен объединить обычную форму с dropzone.js для загрузки перетаскиванием. После того, как пользователь нажимает кнопку отправки, затем ajax-запрос отправляет данные в php-скрипт, если во входных данных есть значения.

Но моя исходная форма вызывает функцию 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>
  

Ответ №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();  ?> // <----
            });
  

Комментарии:

1. Но OnSave — это функция php.