标签:
三. 跳转和重定向
ThinkPHP 在操作数据库时,需要跳转和重定向页面。ThinkPHP 提供了一组方法来解
决了这个问题。
在 WeiBo/Home/Controller/UserController.class.php 中的代码如下:
1 <?php 2 3 namespace Home\Controller; 4 use Think\Controller; 5 6 class UserController extends Controller { 7 public function index() { 8 $flag=ture; 9 if($flag) { 10 //会跳转到:http://localhost/demo39/User/all 11 $this->success(‘跳转成功‘,‘./User/all‘); 12 }else { 13 //会跳转到本页的上一页 14 $this->error(‘跳转失败‘); 15 } 16 } 17 public function all() { 18 echo "这里是跳转的页面"; 19 } 20 }
在浏览器的地址栏输入: http://localhost/demo39/User/ 后出现如下图:
3秒过后:
注意:在 $this->error(‘跳转失败‘); 中发现跳转失败后,会跳转到前一个页面,此时,如果前一个页面是 www.baidu.com ,
然后在上面的代码中的 $flag=false; 然后在浏览器的地址栏中输入 http://localhost/demo39/User/ ,然后它跳转到的
页面是 www.baidu.com 。
PS:success()方法和 error()方法,第一个参数是提示信息、第二个跳转的地址、
第三个跳转时间。默认情况下 success()方法是 1 秒,error()方法是 3 秒。
1 //设置5秒 2 $this->success(‘新增成功!‘, ‘list‘, 5);
success()方法和 error()方法,跳转的时候就对应了相应的模版,默认如下:
1 //默认错误跳转对应的模板文件 2 ‘TMPL_ACTION_ERROR‘ =>THINK_PATH .‘Tpl/dispatch_jump.tpl‘, 3 //默认成功跳转对应的模板文件 4 ‘TMPL_ACTION_SUCCESS‘=>THINK_PATH.‘Tpl/dispatch_jump.tpl‘,
Tpl/dispatch_jump.tpl 的路径为: WeiBo/ThinkPHP/Tpl/dispatch_jump.tpl
自定义成功和错误提示模版页面
在 WeiBo/Common/Conf/config.php 中配置:
1 ‘TMPL_ACTION_SUCCESS‘=>‘Public/success‘, 2 ‘TMPL_ACTION_ERROR‘=>‘Public/error‘,
此时,引用的 Public/success 文件在 WeiBo/Home/View/Public/success.html 下;
这时 success.html 里的跳转函数以及定时函数可参考 dispatch_jump.tpl 中的代码来编写;
对于自定义的提示模版,ThinkPHP 提供了一组变量可供使用。
变量 | 含义 |
$msgTitle | 操作标题 |
$message | 页面提示信息 |
$status | 操作状态 1 表示成功 0 表示失败 |
$waitSecond | 跳转等待时间,单位为秒 |
$jumpUrl | 跳转页面地址 |
//模版中使用提示变量
操作标题:{$msgTitle}<br />
页面提示信息:{$message}<br />
操作状态:{$status}<br />
跳转等待时间:{$waitSecond}<br />
页面跳转地址:{$jumpUrl}
PS:如果对于数据库操作,采用了 Ajax 方式,那么 success()和 error()会自动
ajaxReturn()方法返回数据提供调用。
ThinkPHP 还单独提供了重定向方法 redirect(),参数和 U()方法一样。这个方法使
用的是 URL 规则。
1 $this->redirect(‘User/test‘, array(‘id‘=>5), 5, ‘页面跳转中...‘);
如果只是想纯粹的 URL 跳转,不去使用 URL 规则,那么直接使用 redirect()函数。
1 redirect(‘http://www.baidu.com‘, 5, ‘页面跳转中...‘);
四. 输入变量
标签:
原文地址:http://www.cnblogs.com/jacson/p/4582126.html