ThinkPHP页面跳转success与error方法概述
ThinkPHP自身提供了success方法与error方法用于实现带提示信息的页面跳转功能,可实现添加数据后显示提示信息并跳转的效果。success方法用于操作成功后的提示,error用于操作失败后的提示,二者使用方法完全一致,下面以success方法来进行说明。
1、success方法
success方法语法如下:
success(message,ajax)
参数说明message可选。页面提示信息。ajax可选。是否AJAX方式提交,默认为false。
如果是AJAX方式提交的话,success方法会调用ajaxReturn方法返回信息。
success方法实例:
publicfunctioninsert(){ //省略部分其他代码 if($lastInsId=$Dao->add()){ //页面跳转目标地址 $this->assign("jumpUrl","index"); $this->success("插入数据id为:$lastInsId"); }else{ header("Content-Type:text/html;charset=utf-8"); exit($Dao->getError().'[<AHREF="javascript:history.back()">返回</A>]'); } }
success模板
success方法默认调用公共目录即TPL/Public/下的success.html模板。在该模板中,接收如下模板变量:
模板变量说明:
$waitSecond跳转等待时间,单位为秒,默认success1秒,error3秒。
$jumpUrl跳转目标页面地址,默认为$_SERVER["HTTP_REFERER"](本操作前一页)。
$msgTitle操作标题。注:赋值该变量不会生效,success会取语言包里_OPERATION_SUCCESS_配置信息,error取_OPERATION_FAIL_配置信息。
$message页面提示信息。
$status操作状态,默认1表示成功,0表示失败,具体还可以由项目本身定义规则。
success实际仍是调用display()方法输出success.html模板。因此可以根据实际情况对success.html模板进行修改如添加更多信息提示或者进行CSS美工设置等以满足实际需求,上面这些模板变量只是一些参考变量。
$jumpUrl变量说明:
$jumpUrl变量如果不存在,默认跳转地址是$_SERVER["HTTP_REFERER"],一些常见的跳转页面写法参考:
//本模块其他方法如index方法 $this->assign("jumpUrl","index"); //带上参数 $this->assign("jumpUrl","index/section/".$section); //其他模块 $this->assign("jumpUrl","__APP__/User/index");
如果要使用U方法生成跳转目标地址,可在success.html中变更URL属性为U方法形式:
<metahttp-equiv='Refresh'content='{$waitSecond};URL={:U($jumpUrl)}'>
在操作中,对$jumpUrl模板变量的赋值,相应的也要更改为与U方法一致,详情可参考官方手册《ThinkPHPU方法动态生成URL地址》。
2、error方法
error方法用法与sucess方法完全一致,只是需要注意的是,ThinkPHP默认配置error方法调用的仍是success.html模板。如果需要对error方法单独定义模板,可以修改系统默认配置ThinkPHP/Common/convention.php文件如下:
'TMPL_ACTION_ERROR'=>'Public:success',//默认错误跳转对应的模板文件
或在项目配置里进行重新定义。
Web开发中,在需要页面跳转并显示提示信息时,可以直接使用ThinkPHP页面跳转提供的上述success与error方法。如果不需要提示而是直接重定向页面时,可参考手册《ThinkPHPredirect重定向》部分。
更多关于thinkPHP相关内容感兴趣的读者可查看本站专题:《ThinkPHP入门教程》、《thinkPHP模板操作技巧总结》、《ThinkPHP常用方法总结》、《smarty模板入门基础教程》及《PHP模板技术总结》。
希望本文所述对大家基于ThinkPHP框架的PHP程序设计有所帮助。