@arab789

Как запретить повторную отправку запроса во время выполнения первого?

Есть екшены, которые создают, изменяют страницы и т.д. Как сделать UserIgnor, чтобы когда пользователь нажал сохранить или изменить, больше ничего сделать не мог, пока не выполнится действие? Чтобы не получался один и тот же запрос.
  • Вопрос задан
  • 232 просмотра
Решения вопроса 1
@arab789 Автор вопроса
Решил это так:
В CActiveForm в виде пишем
$form=$this->beginWidget('CActiveForm', array(
	'id'=>'page-form',
	'enableAjaxValidation'=>false,
        'htmlOptions'=>array(
                 'onsubmit'=>'return this.sub.disabled=true;
        ),
       
));


где sub - это id кнопки.

echo CHtml::submitButton('Сохранить', array('id'=>'sub'));
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 2
Шлите запрос AJAX, пока не будет получен ответ с положительным статусом - блокируйте кнопку отправки. Если получена ошибка - аналогично, разблокируйте кнопку и позвольте еще раз отправить данные.
Ответ написан
webinar
@webinar Куратор тега Yii
Учим yii: https://youtu.be/-WRMlGHLgRg
Создать в сессии переменную, например "mazafaka", добавлять ее в beforeaction удалять в afteraction, и в beforeaction перед добавление проверять есть ли она, если есть создавать флеш сообщение и редиректить на предыдущею страницу, если нет создавать
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы