@ptand

Yii2 как сделать редирект в модальном окне при успешной валидации формы?

Всем привет, помогите разобраться, не могу сообразить как правильно реализовать задумку. В yii2 идея реализовать двух этапную регистрацию в модальном окне. Жмем "Зарегистрироваться", открывается модальное окно с полями
public function actionSignupStepOne()
    {
        $model = new Signup;
        if (Yii::$app->request->isAjax && $model->load(Yii::$app->request->post())) {
            if ($user = $model->save()) {
                return $this->redirect('site/signup-step-two');
            } else {
                Yii::$app->response->format = Response::FORMAT_JSON;
                return ActiveForm::validate($model);
            }
        }
        return $this->renderAjax('signup-step-one', [
            'model' => $model,
        ]);
    }

, после нажатия сабмит и успешной валидации нужно что бы в этом же модальном окне отрывалась вторая форма регистрации, но происходит просто редирект на страницу. Подскажите как можно это реализовать? Пробовал поймат событие передавать во вьюху success при успешной валидации а во вьюхе уже рендерить если саксесс тру, но ничего не получается. Пробовал afterValidate но тоже без особого успеха.
  • Вопрос задан
  • 364 просмотра
Решения вопроса 1
slo_nik
@slo_nik Куратор тега Yii
Добрый день.
В этой строке происходит редирект на другую страницу
return $this->redirect('site/signup-step-two');
Возвращайте какое-то значение вместо редиректа, а в 'success' проверяйте что вернулось. Если вернулось нужное значение, то показывайте вторую форму.
Или же попробуйте вернуть форму так же, как и первую
return $this->renderAjax('signup-step-two', [
'model' => $model,
]);


p.s. А зачем именно вот так $user = $model->save()?
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
@Arik
Наверно дело в X-Redirect, yii.js по умолчанию отправляет браузер на новый УРЛ

Можно попробовать
return $this->redirect('site/signup-step-two', 302, false);
Ответ написан
Ваш ответ на вопрос

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

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