Возврат на предыдущую страницу

Общие вопросы по использованию фреймворка. Если не знаете как что-то сделать и это про Yii, вам сюда.
Ответить
Аватара пользователя
yuran80
Сообщения: 114
Зарегистрирован: 2010.03.21, 10:39
Откуда: Украина, Луцк
Контактная информация:

Возврат на предыдущую страницу

Сообщение yuran80 »

При авторизации или при выходе с аккаунта я сделал в контроллере редирект назад:

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

$this->redirect(Yii::app()->user->returnUrl); 
Но не устраивает два момента:
1) index.php?r=news/create - от сюда кидает на index.php
2) нужно чтобы при заполнении полей на странице index.php?r=news/create - пользователь после авторизации не терял заполненные поля.
Такое реально реализовать? Подскажите как?
ynik
Сообщения: 124
Зарегистрирован: 2010.05.05, 13:07
Откуда: Ukraine

Re: Возврат на предыдущую страницу

Сообщение ynik »

немного непонятно мне, по первому моменту: news/create после чего кидает на index.php после сохранения или неудачного сохранения, если да то в контролеере в екшене рендерить туда куда надо, по второму моменту: имеете ввиду что пользователь пишет новость, заполнил поля а потом решил вдруг залогиниться, и после авторизации его выбросило на index.php, а вы хотели чтоб на ту же форму с уже заполненными им полями :shock: , если так то интересно зачем вдруг юзеру взбредет во время написания новости логиниться, почему не сделать добалять новости только для зарегестрированных пользователей?
Аватара пользователя
yuran80
Сообщения: 114
Зарегистрирован: 2010.03.21, 10:39
Откуда: Украина, Луцк
Контактная информация:

Re: Возврат на предыдущую страницу

Сообщение yuran80 »

Объясню подробнее:
Страница добавления новости доступна и не авторизованным пользователям(желание заказчика), на этой странице после формы добавления новости, вместо кнопки "добавить" идет текст "Чтобы добавить новость нужно войти", нужно сделать так чтобы после авторизации пользователь оставался на странице добавления новости (почему-то $this->redirect(Yii::app()->user->returnUrl); - кидает на главную) и если он заполнил некоторые поля они должны остаться заполненными. Или это не реально?
isergey
Сообщения: 83
Зарегистрирован: 2010.01.16, 21:05

Re: Возврат на предыдущую страницу

Сообщение isergey »

Как сделал я, чтобы вернуться на предыдущую страницу.
В представлении 1 создаем ссылку с текущим URL.

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

 <?php echo CHtml::link('Подробнее',array('view','id'=>$journal->getId(),'backUrl'=>Yii::app()->request->url));?>
Далее в контроллере ловим $_GET['backUrl'], и передаем его в нужное представление 2.

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

               
$this->render('view',array(
            'resource'=>$resource,
                        'backUrl'=>$_GET['backUrl']
        ));
 
В представлении 2 формируем ссылку на предыдущую страницу

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

echo CHtml::link(Yii::t('main', 'Back to search results'), $backUrl);
//или
$this->redirect(backUrl); 
 
При этом необходимо проверять на наличие самой переменной $backUrl, ибо могут послать запрос без ее передачи.
Плюсы этого подхода в том, что вы полностью контролируете обратную ссылку, ибо браузер может и не отослать url, с которого он пришел и значение в Yii::app()->user->returnUrl может быть не тем, что вы ожидали.
Аватара пользователя
yuran80
Сообщения: 114
Зарегистрирован: 2010.03.21, 10:39
Откуда: Украина, Луцк
Контактная информация:

Re: Возврат на предыдущую страницу

Сообщение yuran80 »

Спасибо за ответ. Но эта реализация мне скорее всего не подойдет, т.к. мне нужно автоматически делать редирект назад + заполненные поля формы при таком редиректе придется заполнять заново((
Аватара пользователя
samdark
Администратор
Сообщения: 9489
Зарегистрирован: 2009.04.02, 13:46
Откуда: Воронеж
Контактная информация:

Re: Возврат на предыдущую страницу

Сообщение samdark »

Можно попробовать вот это: http://code.google.com/p/yiiext/downloa ... _1.0.1.zip
Аватара пользователя
yuran80
Сообщения: 114
Зарегистрирован: 2010.03.21, 10:39
Откуда: Украина, Луцк
Контактная информация:

Re: Возврат на предыдущую страницу

Сообщение yuran80 »

Спасибо, это подходит, только еще нужно разобраться с сохранением полей формы в сессии.
isergey
Сообщения: 83
Зарегистрирован: 2010.01.16, 21:05

Re: Возврат на предыдущую страницу

Сообщение isergey »

А данные формы таскать через GET параметры не вариант?
Аватара пользователя
samdark
Администратор
Сообщения: 9489
Зарегистрирован: 2009.04.02, 13:46
Откуда: Воронеж
Контактная информация:

Re: Возврат на предыдущую страницу

Сообщение samdark »

Лучше уж через сессию. В GET может и не влезть.
Аватара пользователя
yuran80
Сообщения: 114
Зарегистрирован: 2010.03.21, 10:39
Откуда: Украина, Луцк
Контактная информация:

Re: Возврат на предыдущую страницу

Сообщение yuran80 »

А можно подробнее, как правильней в сессию записать значения полей(хотя это и сам смогу догнать)), а главное как в контроллере передать их в форму чтобы она заполненной стала?
Аватара пользователя
yuran80
Сообщения: 114
Зарегистрирован: 2010.03.21, 10:39
Откуда: Украина, Луцк
Контактная информация:

Re: Возврат на предыдущую страницу

Сообщение yuran80 »

Не могу сделать следующие - при сабмите формы авторизации, нужно все значения формы добавления новости тоже передать, чтобы потом их в сессию записать. Но как их передать? Если формы то две разные(авторизация и добавление новости) (((( Запутался я...
Аватара пользователя
will123
Сообщения: 30
Зарегистрирован: 2010.04.09, 21:27
Откуда: Иркутск

Re: Возврат на предыдущую страницу

Сообщение will123 »

ну ложь сперва, после перехода на страницу авторизации со страницы добавления новости, в сессию данные формы новости. Попали на страницу с логином, заполнили, нажали сабмит, авторизовались средиректили на форму новостей вывели в поля данные из сессии, удалили данные из сессии... как то так..
Аватара пользователя
yuran80
Сообщения: 114
Зарегистрирован: 2010.03.21, 10:39
Откуда: Украина, Луцк
Контактная информация:

Re: Возврат на предыдущую страницу

Сообщение yuran80 »

Спасибо, теорию я то понял) А вот на практике не могу что-то концы с концами свести((( И кстати форма авторизации и добавления новости у меня на одной странице, т.е. перехода на другую страницу нет. Проблема в отправке вместе с формой авторизации, еще и поля с формы новости...
Аватара пользователя
Barssoft
Сообщения: 726
Зарегистрирован: 2013.01.21, 16:03

Re: Возврат на предыдущую страницу

Сообщение Barssoft »

А почему нельзя указать урл назад скажем вот так

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

javascript:history.back() 
я так делаю и работает
Ответить