## 页面跳转
在应用开发中,经常会遇到一些带有提示信息的跳转页面,例如操作成功或者操作错误页面,并且自动跳转到另外一个目标页面。系统的`\Think\Controller`类内置了两个跳转方法success和error,用于页面跳转提示,而且可以支持ajax提交。
使用方法很简单,举例如下:
$User = M('User'); //实例化User对象
$result = $User->add($data);
if($result){
//设置成功后跳转页面的地址,默认的返回页面是$_SERVER['HTTP_REFERER']
$this->success('新增成功', '/User/index');
} else {
//错误页面的默认跳转页面是返回前一页,通常不需要设置
$this->error('新增失败');
success和error方法的第一个参数表示提示信息,第二个参数表示跳转地址,第三个参数是跳转时间(单位为秒),例如:
// 操作完成3秒后跳转到 /Article/index
$this->success('操作完成','/Article/index',3);
// 操作失败5秒后跳转到 /Article/error
$this->error('操作失败','/Article/error',5);
跳转地址是可选的,success方法的默认跳转地址是`$_SERVER["HTTP_REFERER"]`,error方法的默认跳转地址是`javascript:history.back(-1);`。
> 默认的等待时间success方法是1秒,error方法是3秒
`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',
模板文件可以使用模板标签,并且可以使用下面的模板变量:
| 变量 | 含义 |
|-----|-----|
| $message | 页面提示信息 |
| $error| 页面错误提示信息 |
| $waitSecond | 跳转等待时间 单位为秒 |
| $jumpUrl | 跳转页面地址 |
success和error方法会自动判断当前请求是否属于Ajax请求,如果属于Ajax请求则会调用ajaxReturn方法返回信息。 ajax方式下面,success和error方法会封装下面的数据返回:
$data['info'] = $message; // 提示信息内容
$data['status'] = $status; // 状态 如果是success是1 error 是0
$data['url'] = $jumpUrl; // 成功或者错误的跳转地址
## 重定向
Controller类的redirect方法可以实现页面的重定向功能。
redirect方法的参数用法和U函数的用法一致(参考[URL生成](1718)部分),例如:
//重定向到New模块的Category操作
$this->redirect('New/category', array('cate_id' => 2), 5, '页面跳转中...');
上面的用法是停留5秒后跳转到New模块的category操作,并且显示页面跳转中字样,重定向后会改变当前的URL地址。
如果你仅仅是想重定向要一个指定的URL地址,而不是到某个模块的操作方法,可以直接使用`redirect`函数重定向,例如:
//重定向到指定的URL地址
redirect('/New/category/cate_id/2', 5, '页面跳转中...')
Redirect函数的第一个参数是一个URL地址。
> 控制器的redirect方法和redirect函数的区别在于前者是用URL规则定义跳转地址,后者是一个纯粹的URL地址。
获取ThinkPHP
模块化设计
URL模式
多层MVC
CBD模式
控制器定义
前置和后置操作
Action参数绑定
URL大小写
URL生成
AJAX返回
跳转和重定向
插件控制器
操作绑定到类
模型实例化
连接数据库
切换数据库
分布式数据库支持
WHERE
TABLE
ALIAS
FIELD
ORDER
LIMIT
GROUP
HAVING
UNION
DISTINCT
CACHE
COMMENT
RELATION
USING
fetchSql
TOKEN
STRICT
INDEX
CURD操作
ActiveRecord
表达式查询
SQL查询
Mongo模型
获取模板地址
默认值输出
使用运算符
修改定界符
Volist标签
Foreach标签
For标签
Switch标签
范围判断标签
Present标签
Empty标签
Defined标签
Assign标签
Define标签
import标签
使用PHP代码
页面Trace
Trace方法
表单合法性检测
防止SQL注入
目录安全文件
保护模板文件
防止XSS攻击
其他安全建议
数据库驱动
Session驱动
模板引擎驱动
标签库驱动
Widget扩展
PATH_INFO支持
URL重写
SESSION支持
Cookie支持
多语言支持
RESTFul
IP获取和定位