Определить когда заканчивается action в yii2

81
23 июня 2021, 00:30

Вообщем такая проблема, я на странице делаю отправку формы, через плагин mpdf у меня формируется документ и я возвращаю файл который человек сохраняет, проблема в том, что пока документ формируется может пройти некоторое время, и человек может снова нажать кнопку, да я могу её заблокировать, но как поймать конец этого формирования, чтобы разблокировать кнопку. Для формирования документа использую отдельный action.

Answer 1

Попробуйте сделать отправку формы AJAX.

После отправки разумеется кнопку блокируйте. Когда же обработка на сервере закончится, будет вызвано событие в обработчике которого Вы сможете разблокировать кнопку.

Пример на jQuery для обработчика события beforeSubmit формы:

$.ajax({
     // Метод отправки данных (тип запроса)
     type : 'post',
     // URL для отправки запроса
     url : my_url,
     // Данные формы
     data : my_data
}).done(function(data) {
    if (data.error == null) {
        // Если ответ сервера успешно получен                    
    } else {
        // Если при обработке данных на сервере произошла ошибка                    
    }
}).fail(function() {
    // Если произошла ошибка при отправке запроса            
})

Вызовы метода on и documentReady здесь опущены.

Более полный пример, который иллюстрирует основные принципы работы с AJAX в Yii можно посмотреть в частности здесь.

READ ALSO
Unit тестирование Laravel

Unit тестирование Laravel

Как правильно организовать тестирование по сценарию:

110
Выбрасывать исключение в методах с указанным возвращаемым типом

Выбрасывать исключение в методах с указанным возвращаемым типом

правильно ли выбрасывать исключение, если у метода задано возвращаемое значения ? Могут ли быть ошибки ?

134
Нужно ли пересобирать maven проект при изменении файла application.properties?

Нужно ли пересобирать maven проект при изменении файла application.properties?

Пишу на Java Spring и постоянно натыкаюсь на проблему того, что не понимаю в каком случае проект необходимо перекомпилировать, а в каком не нужно

101
как редактировать class

как редактировать class

просто как в текстовом редакторетолько с компиляцией декомпиляцией

172