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 相关文章推荐
通过html表格发电子邮件
Oct 09 PHP
解析PHP中一些可能会被忽略的问题
Jun 21 PHP
PHP实现PDO的mysql数据库操作类
Dec 12 PHP
CentOS 安装 PHP5.5+Redis+XDebug+Nginx+MySQL全纪录
Mar 25 PHP
Yii扩展组件编写方法实例分析
Jun 29 PHP
PHP常用的排序和查找算法
Aug 06 PHP
php版微信返回用户text输入的方法
Nov 14 PHP
php微信公众平台开发(三)订阅事件处理
Dec 06 PHP
php使用PDO事务配合表格读取大量数据插入操作实现方法
Feb 16 PHP
php mysql PDO 查询操作的实例详解
Sep 23 PHP
PHP接口继承及接口多继承原理与实现方法详解
Oct 18 PHP
微信公众平台开发教程⑥ 微信开发集成类的使用图文详解
Apr 10 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
用phpmyadmin更改mysql5.0登录密码
2008/03/25 PHP
深入phpMyAdmin的安装与配置的详细步骤
2013/05/07 PHP
php 生成签名及验证签名详解
2016/10/26 PHP
PHP封装的验证码工具类定义与用法示例
2018/08/22 PHP
validator验证控件使用代码
2010/11/23 Javascript
jQuery实现图片信息的浮动显示实例代码
2013/08/28 Javascript
node.js中的buffer.toJSON方法使用说明
2014/12/14 Javascript
javaScript中slice函数用法实例分析
2015/06/08 Javascript
详解JavaScript的Polymer框架中的通知交互
2015/07/29 Javascript
JavaScript中this的四个绑定规则总结
2016/09/26 Javascript
Bootstrap学习笔记之环境配置(1)
2016/12/07 Javascript
微信小程序 HTTPS报错整理常见问题及解决方案
2016/12/14 Javascript
Vue2.0中集成UEditor富文本编辑器的方法
2018/03/03 Javascript
JavaScript实现读取与输出XML文件数据的方法示例
2018/06/05 Javascript
React中使用UEditor百度富文本的方法
2018/08/22 Javascript
node app 打包工具pkg的具体使用
2019/01/17 Javascript
使用Jenkins部署React项目的方法步骤
2019/03/11 Javascript
JS实现简单随机3D骰子
2019/10/24 Javascript
JavaScript实现烟花绽放动画效果
2020/08/04 Javascript
Vue路由 重定向和别名的区别说明
2020/09/09 Javascript
Vite和Vue CLI的优劣
2021/01/30 Vue.js
[46:49]完美世界DOTA2联赛PWL S3 access vs Rebirth 第二场 12.19
2020/12/24 DOTA
布同 统计英文单词的个数的python代码
2011/03/13 Python
python之yield表达式学习
2014/09/02 Python
python使用代理ip访问网站的实例
2018/05/07 Python
python使用Plotly绘图工具绘制水平条形图
2020/03/25 Python
Python pip 安装与使用(安装、更新、删除)
2019/10/06 Python
Python高级编程之继承问题详解(super与mro)
2019/11/19 Python
HTML5打开本地app应用的方法
2016/03/31 HTML / CSS
加拿大约会网站:EliteSingles.ca
2018/01/12 全球购物
英国户外玩具儿童游乐设备网站:TP Toys(蹦床、攀爬框架、秋千、滑梯和游戏屋)
2018/04/09 全球购物
中学教师管理制度
2014/01/14 职场文书
《清澈的湖水》教学反思
2016/02/17 职场文书
2016年三八红旗手先进事迹材料
2016/02/26 职场文书
写给汽车4S店的创业计划书,拿来即用!
2019/08/09 职场文书
MySQL update set 和 and的区别
2021/05/08 MySQL