перенаправление при POST запросе

Общие вопросы по использованию второй версии фреймворка. Если не знаете как что-то сделать и это про Yii 2, вам сюда.
Ответить
Alex@
Сообщения: 568
Зарегистрирован: 2014.12.16, 09:24

перенаправление при POST запросе

Сообщение Alex@ »

Здравствуйте.
Использую https://github.com/johnitvn/yii2-ajaxcrud
мне необходимо при удачном сохранении данных перенаправить на нужную страницу, не совсем понимаю как это сделать:

Код: Выделить всё

public function actionCreate($prefix)
    {
        $request = Yii::$app->request;
        if($request->isAjax){
            Yii::$app->response->format = Response::FORMAT_JSON;
            if($request->isGet)
                return $this->getResponseCreate();
            else if($this->model->load($request->post())){
                if($this->model->save()){
                    return $this->redirect($this->returnCreateUrl);
                }
                    return $this->getCfgDataSave(
                        'success',
                        $this->msgSuccessSave
                    );
                else
                    return $this->getCfgDataSave('error',$this->msgErrorSave);
            }
            else return $this->getResponseCreate();
        }
        else{
            if ($this->model->load($request->post()) && $this->model->save()) {
                return $this->redirect($this->returnCreateUrl);
            } else {
                return $this->render('create');
            }
        }
Аватара пользователя
S c
Сообщения: 883
Зарегистрирован: 2012.04.11, 14:46

Re: перенаправление при POST запросе

Сообщение S c »

$this->redirect() возвращает заголовок "location", из-за этого и происходит редирект. Если у вас аякс запрос - редирект делайте средством JS
Alex@
Сообщения: 568
Зарегистрирован: 2014.12.16, 09:24

Re: перенаправление при POST запросе

Сообщение Alex@ »

Код: Выделить всё

 if($this->model->save()){
 			А КАК ВПИХНУТЬ СЮДА JS?????
                    return $this->redirect($this->returnCreateUrl);
                }
                    return $this->getCfgDataSave(
                        'success',
                        $this->msgSuccessSave
                    );
                else
                    return $this->getCfgDataSave('error',$this->msgErrorSave);
А КАК ВПИХНУТЬ JS?????
zelenin
Сообщения: 10596
Зарегистрирован: 2013.04.20, 11:30

Re: перенаправление при POST запросе

Сообщение zelenin »

Alex@ писал(а): 2017.10.19, 16:34

Код: Выделить всё

 if($this->model->save()){
 			А КАК ВПИХНУТЬ СЮДА JS?????
                    return $this->redirect($this->returnCreateUrl);
                }
                    return $this->getCfgDataSave(
                        'success',
                        $this->msgSuccessSave
                    );
                else
                    return $this->getCfgDataSave('error',$this->msgErrorSave);
А КАК ВПИХНУТЬ JS?????
не сюда, а в обработчик полученных с сервера данных
Ответить