ThinkPHP - 页面跳转

在应用开发中,经常会遇到一些带有提示信息的跳转页面,例如操作成功或者操作错误页面,并且自动跳转到另外一个目标页面。系统的Action类内置了两个跳转方法success和error,用于页面跳转提示,而且可以支持ajax提交。使用方法很简单,举例如下:
 
$User = M('User'); //实例化User对象
$result = $User->add($data); 
 if($result){
    //设置成功后跳转页面的地址,默认的返回页面是$_SERVER['HTTP_REFERER']
    $this->success('新增成功', 'User/list');
 } else {
    //错误页面的默认跳转页面是返回前一页,通常不需要设置
    $this->error('新增失败');
 }
 
Success和error方法都有对应的模板,并且是可以设置的,默认的设置是两个方法对应的模板都是:
//默认错误跳转对应的模板文件
 'TMPL_ACTION_ERROR' => THINK_PATH . 'Tpl/dispatch_jump.tpl';
 //默认成功跳转对应的模板文件
 'TMPL_ACTION_SUCCESS' => THINK_PATH . 'Tpl/dispatch_jump.tpl';
也可以使用项目内部的模板文件
//默认错误跳转对应的模板文件
 'TMPL_ACTION_ERROR' => 'Public:error';
 //默认成功跳转对应的模板文件
 'TMPL_ACTION_SUCCESS' => 'Public:success';
模板文件可以使用模板标签,并且可以使用下面的模板变量:
$msgTitle 操作标题
$message 页面提示信息
$status 操作状态 1表示成功 0 表示失败 具体还可以由项目本身定义规则
$waitSecond 跳转等待时间 单位为秒
$jumpUrl 跳转页面地址
success和error方法会自动判断当前请求是否属于Ajax请求,如果属于Ajax请求则会调用ajaxReturn方法返回信息,具体可以参考后面的AJAX返回部分。
 
3.1版本开始,error和success方法支持传值,无论是跳转模板方式还是ajax方式 都可以使用assign方式传参。例如:
$this->assign('var1','value1');
$this->assign('var2','value2');
$this->error('错误的参数','要跳转的URL地址');
当正常方式提交的时候,var1和var2变量会赋值到错误模板的模板变量。
当采用AJAX方式提交的时候,会自动调用ajaxReturn方法传值过去(包括跳转的URL地址url和状态值status)
posted @ 2014-04-10 09:29  Alex.Net  阅读(405)  评论(0编辑  收藏  举报