首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >为CButtonColumn按钮设置returnURL

为CButtonColumn按钮设置returnURL
EN

Stack Overflow用户
提问于 2011-03-15 21:29:08
回答 2查看 2.8K关注 0票数 1

我正在查看CButtonColumn类中缺省删除按钮的控制器。在删除CGridView行之后,它设法返回到前一个网页,并保持在CGridView的同一页上,而不是转到第一页。在关联的控制器中,负责此操作的行似乎是:

if (!isset($_GET['ajax'])) $this->redirect(isset($_POST['returnUrl']) ? $_POST['returnUrl'] : array('admin'));

我想创建一个具有此行为的新自定义按钮(即返回到上一个视图,而不将分页重置为页面1),但仅在按钮的相关操作中包含上述代码行并不起作用。我想我需要以某种方式发送'returnUrl‘参数,但我不知道如何发送:)

EN

回答 2

Stack Overflow用户

发布于 2011-03-16 23:07:12

您正在查看的' returnUrl‘代码为returnUrl使用了一个POST变量。要使用它,你需要以某种方式发布它。在视图中,这段代码是从我假设表单中有一个<input name="returnUrl">字段中调用的。您应该确保这个字段(填充了正确的URL值)出现在您要POSTing的所有视图上,以便在控制器操作中访问该POST变量。

如果您通过AJAX使用POSTing连接到deleteAction,我认为您可以使用jQuery AJAX函数设置$_POST['returnUrl']变量。

另一种方法可能是使用CWebUser's returnUrl会话变量而不是此POST变量。我从来没有这样做过,但它是Yii内置的,所以我认为它工作得很好。

无论如何,我从来没有真正喜欢过Gii生成的$_POST['returnUrl']

您可以做的另一件事可能是查看$_SERVER['HTTP_REFERER']变量,并将其用于deleteAction中的返回重定向。不过,我不知道这是否会被正确设置,因为Yii所做的302重定向/重写带来了复杂性。

祝好运!

票数 1
EN

Stack Overflow用户

发布于 2012-09-15 02:35:45

您可以通过CHtml::link调用来设置返回url。下面是一个使用delete的示例

代码语言:javascript
复制
CHtml::link(
    'Delete',
    '#',
     array('submit'=>array('delete','id'=>$model->id),
           'params'=>('returnUrl'=>'controller/action...'), 
           'confirm' => 'Are you sure?'
     )
);

this堆栈溢出答案中提取。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5312434

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档