@michaelromanov90

Как правильно реализовать ajax ответ в yii2?

У меня есть форма
$form = ActiveForm::begin([
                    'id' => 'emailsimple',
                    'enableAjaxValidation'   => true,
                    'enableClientValidation' => true,
                    'validationUrl' => '/site/controllers/site/feedback-emailsimple',
                ]);


и есть этот контроллер, а в нём метод
public function actionFeedbackEmailsimple()
    {
        Yii::$app->Url->RequestAjax__Check();
        $model = new Emailsimple();
        if ($model->load(Yii::$app->request->post())) {
            Yii::$app->response->format = Response::FORMAT_JSON;
            return ActiveForm::validate($model);
        } else {
            throw new ForbiddenHttpException;
        }
    }


так вот, при успехе, страница перезагружается. Но, разумеется, это лишнее, надо сделать так, чтобы я в js ответ получил.
События js не успевают отловиться, так как страница перезагружается...
Что делать?)
  • Вопрос задан
  • 212 просмотров
Решения вопроса 1
slo_nik
@slo_nik Куратор тега Yii
Добрый вечер.
Возможно Вам поможет это видео.
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
rusticus
@rusticus
Разработчик
'События js не успевают отловиться, так как страница перезагружается...' - не перезагружать страницу, а отправлять данные формы через ajax, например вот так
datastring = $("form").serialize();
$.ajax({
	url: "/controller/",
	data: datastring,
	type: "GET",
	dataType: "json",
	success: function(data){
	},
	error: function(data){
	}
});
Ответ написан
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы