ThinkPHP页面跳转success与error方法概述


Posted in PHP onJune 25, 2014

ThinkPHP自身提供了success方法与error方法用于实现带提示信息的页面跳转功能,可实现添加数据后显示提示信息并跳转的效果。success 方法用于操作成功后的提示,error 用于操作失败后的提示,二者使用方法完全一致,下面以success 方法来进行说明。
1、success方法
 
success方法语法如下:
success(message, ajax) 
参数说明message可选。页面提示信息。ajax可选。是否AJAX 方式提交,默认为false 。
如果是AJAX 方式提交的话,success 方法会调用ajaxReturn 方法返回信息。

success方法实例:

public function insert(){
// 省略部分其他代码
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跳转等待时间,单位为秒,默认success 1 秒,error 3 秒。
$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 方法形式:

<meta http-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 方法。如果不需要提示而是直接重定向页面时,可参考手册《ThinkPHP redirect 重定向》部分。

希望本文所述对大家基于ThinkPHP框架的PHP程序设计有所帮助。

PHP 相关文章推荐
一步一步学习PHP(1) php开发环境配置
Feb 15 PHP
利用PHP实现智能文件类型检测的实现代码
Aug 02 PHP
用PHP+MySQL搭建聊天室功能实例代码
Aug 20 PHP
PHP下打开phpMyAdmin出现403错误的问题解决方法
May 23 PHP
PHP 文件编程综合案例-文件上传的实现
Jul 03 PHP
PHP怎么实现网站保存快捷方式方便用户随时浏览
Aug 15 PHP
php给每个段落添加空格的方法
Mar 20 PHP
Symfony学习十分钟入门经典教程
Feb 03 PHP
PHP使用token防止表单重复提交的方法
Apr 07 PHP
php版微信公众账号第三方管理工具开发简明教程
Sep 23 PHP
php 文件下载 出现下载文件内容乱码损坏的解决方法(推荐)
Nov 16 PHP
PHP用swoole+websocket和redis实现web一对一聊天
Nov 05 PHP
修改ThinkPHP缓存为Memcache的方法
Jun 25 #PHP
ThinkPHP的截取字符串函数无法显示省略号的解决方法
Jun 25 #PHP
ThinkPHP多表联合查询的常用方法
Mar 24 #PHP
ThinkPHP2.0读取MSSQL提示Incorrect syntax near the keyword 'AS'的解决方法
Jun 25 #PHP
ThinkPHP查询中的魔术方法简述
Jun 25 #PHP
Thinkphp实现MySQL读写分离操作示例
Jun 25 #PHP
Zend Framework页面缓存实例
Jun 25 #PHP
You might like
PHP编程风格规范分享
2014/01/15 PHP
php简单smarty入门程序实例
2015/06/11 PHP
PHP限制HTML内容中图片必须是本站的方法
2015/06/16 PHP
PHP代码实现表单数据验证类
2015/07/28 PHP
php文件类型MIME对照表(比较全)
2016/10/07 PHP
PHP数组的定义、初始化和数组元素的显示实现代码
2016/11/05 PHP
php中分页及SqlHelper类用法实例
2017/01/12 PHP
TP3.2批量上传文件或图片 同名冲突问题的解决方法
2017/08/01 PHP
JavaScript 5 新增 Array 方法实现介绍
2012/02/06 Javascript
jquery控制表单输入框显示默认值的方法
2015/05/22 Javascript
基于jQuery通过jQuery.form.js插件使用ajax提交form表单
2015/08/17 Javascript
jqueryMobile使用示例分享
2016/01/12 Javascript
微信小程序 图片边框解决方法
2017/01/16 Javascript
js编写选项卡效果
2017/05/23 Javascript
浅谈js闭包理解
2019/04/01 Javascript
vue ajax 拦截原理与实现方法示例
2019/11/29 Javascript
node.js express捕获全局异常的三种方法实例分析
2019/12/27 Javascript
javascript事件循环event loop的简单模型解释与应用分析
2020/03/14 Javascript
Python3基础之基本数据类型概述
2014/08/13 Python
python集合用法实例分析
2015/05/30 Python
pandas 获取季度,月度,年度首尾日期的方法
2018/04/11 Python
Python中Numpy包的安装与使用方法简明教程
2018/07/03 Python
Django中的forms组件实例详解
2018/11/08 Python
python通过配置文件共享全局变量的实例
2019/01/11 Python
python应用文件读取与登录注册功能
2019/09/23 Python
pandas.DataFrame.drop_duplicates 用法介绍
2020/07/06 Python
巴西最大的家具及装饰用品店:Mobly
2017/10/11 全球购物
英国领先的运动营养品牌:Protein Dynamix
2018/01/02 全球购物
个人委托书怎么写
2014/04/04 职场文书
环境科学专业求职信
2014/08/04 职场文书
公司授权委托书格式样本
2014/10/01 职场文书
综治维稳工作汇报
2014/10/27 职场文书
英文商务邀请函范文
2015/01/31 职场文书
2015年助理政工师工作总结
2015/05/26 职场文书
基于HTML十秒做出淘宝页面
2021/10/24 HTML / CSS
SpringBoot 集成短信和邮件 以阿里云短信服务为例
2022/04/22 Java/Android