перенаправление браузера на предыдущую страницу
перенаправление браузера на предыдущую страницу
Здравствуйте !
Подскажите пожалуйста, как после успешного завершения действия контроллера перенаправить браузер на предыдущую страницу ?
$this->redirect(Yii::app()->user->returnUrl) дает странные результаты.
Похоже, что перенаправляет на ту страницу, которая потребовала пользователя залогиниться.
Подскажите пожалуйста, как после успешного завершения действия контроллера перенаправить браузер на предыдущую страницу ?
$this->redirect(Yii::app()->user->returnUrl) дает странные результаты.
Похоже, что перенаправляет на ту страницу, которая потребовала пользователя залогиниться.
Re: перенаправление браузера на предыдущую страницу
$this->refresh()//на текущую без поста и всего другого или $this->redirect(Yii::app()->request->urlReferrer);
Re: перенаправление браузера на предыдущую страницу
Гм, все было бы хорошо, если бы действие контроллера вызывалось только один раз.
А то ведь сначала делается рендеринг представления, которое есть форма ввода, а потом в этом же действии обработка ввода.
По-крайней мере, по такой схеме работает действие, сгенерированное с помощью Gii.
Что посоветуете ?
А то ведь сначала делается рендеринг представления, которое есть форма ввода, а потом в этом же действии обработка ввода.
По-крайней мере, по такой схеме работает действие, сгенерированное с помощью Gii.
Код: Выделить всё
public function actionRateStudent()
{
$attestat = new Attestats();
if(isset($_POST['Attestats']))
{
$attestat->attributes = $_POST['Attestats'];
if($attestat->save())
$this->redirect(Yii::app()->request->urlReferrer);
}
$this->render('rateStudent',array(
'attestat' => $attestat,
));
}
Re: перенаправление браузера на предыдущую страницу
if($attestat->save())
$this->refresh(); //если в этом же вью рендерете инфу, или $this->redirect(array('view','id'=>$AttestatId)
p.s. внимательно прочитайте гайд, там много примеров, поможет тоже
$this->refresh(); //если в этом же вью рендерете инфу, или $this->redirect(array('view','id'=>$AttestatId)
p.s. внимательно прочитайте гайд, там много примеров, поможет тоже
Re: перенаправление браузера на предыдущую страницу
Дело в том, что данное действие может вызываться из разных мест, поэтому $this->redirect(array('view','id'=>$AttestatId) не подходит, не говоря уже о refresh(). Нужен именно возврат на ту страницу, с которой был вызов.
Пойду в очередной раз читать руководство, хотя, если честно, без особой надежды.
Пойду в очередной раз читать руководство, хотя, если честно, без особой надежды.
Re: перенаправление браузера на предыдущую страницу
Обычно для ссылок, которые требуют редиректа на определенное место после процессинга результатов, добавляют GET параметр что то типа ReturnUrl, в друпале скажем добавляется параметр destination, и после сейва формы редиректит на даресс в destination.
Re: перенаправление браузера на предыдущую страницу
Пойдет?Нужен именно возврат на ту страницу, с которой был вызов.
Код: Выделить всё
// какой-то код в контроллере, например сохранение данных
$this->redirect($_SERVER['HTTP_REFERER']);
Re: перенаправление браузера на предыдущую страницу
Нет ;(
Чем это отличается от $this->redirect(Yii::app()->request->urlReferrer); ?
Возможно, действительно придется сохранять адрес возврата в сессии, хотя мне эта идея совсем не нравится.
Чем это отличается от $this->redirect(Yii::app()->request->urlReferrer); ?
Возможно, действительно придется сохранять адрес возврата в сессии, хотя мне эта идея совсем не нравится.
Re: перенаправление браузера на предыдущую страницу
Код: Выделить всё
Yii::app()->request->redirect($_SERVER['HTTP_REFERER']);