PHP的简单跳转提示的实现
程序员文章站
2022-10-05 10:50:45
在PHP开发中,尤其是MVC框架或者项目中,会碰到很多跳转情况,比如:登录成功或失败后的跳转等等。 以下以MVC框架开发中为基础,示例讲解: 在基础控制器类中:Conrtoller.class.php 在MVC的自动加载中,将Controller.class.php进行自动加载注册 通过不同控制器类 ......
在php开发中,尤其是mvc框架或者项目中,会碰到很多跳转情况,比如:登录成功或失败后的跳转等等。
以下以mvc框架开发中为基础,示例讲解:
在基础控制器类中:conrtoller.class.php
1 <?php 2 3 /** 4 * 基础控制器类 5 */ 6 class controller { 7 /** 8 * 跳转 9 * $url 目标url 10 * $info 提示信息 11 * $time 等待时间(单位秒) 12 */ 13 protected function jump($url,$info=null,$time=3) { 14 //判断是立即跳转还是刷新跳转 15 if(is_null($info)) { 16 //立即跳转 17 header('location:'. $url); 18 die; 19 } else { 20 //刷新跳转,给出提示 21 echo <<<tiaozhuan 22 <meta http-equiv="content-type" content="text/html; charset=utf-8" /> 23 <title>提示信息</title> 24 <style type='text/css'> 25 * {margin:0; padding:0;} 26 div {width:390px; height:287px; border:1px #09c solid; position:absolute; left:50%; margin-left:-195px; top:10%;} 27 div h2 {width:100%; height:30px; line-height:30px; background-color:#09c; font-size:14px; color:#fff; text-indent:10px;} 28 div p {height:120px; line-height:120px; text-align:center;} 29 div p strong {font-size:26px;} 30 </style> 31 <div> 32 <h2>提示信息</h2> 33 <p> 34 <strong>$info</strong><br /> 35 页面在<span id="second">$time</span>秒后会自动跳转,或点击<a id="tiao" href="$url">立即跳转</a> 36 </p> 37 </div> 38 <script type="text/javascript"> 39 var url = document.getelementbyid('tiao').href; 40 function daoshu(){ 41 var scd = document.getelementbyid('second'); 42 var time = --scd.innerhtml; 43 if(time<=0){ 44 window.location.href = url; 45 clearinterval(mytime); 46 } 47 } 48 var mytime = setinterval("daoshu()",1000); 49 </script> 50 tiaozhuan; 51 die; 52 } 53 } 54 55 }
在mvc的自动加载中,将controller.class.php进行自动加载注册
通过不同控制器类继承上面的controller.class.php基础控制器类后,就可以调用定义的跳转提示。
1 <?php 2 3 /** 4 * 后台管理员控制器(登录、注销、管理员的增删改查等) 5 */ 6 class admincontroller extends controller { 7 /** 8 * 展示登录表单动作 9 */ 10 public function loginaction() { 11 // 载入当前的视图文件 12 $this->display('login.html'); 13 } 14 /** 15 * 后台注销功能 16 */ 17 public function logoutaction() { 18 @session_start(); 19 // 删除相关会话数据 20 unset($_session['admininfo']); 21 // 删除会话数据区 22 session_destroy(); 23 // 立即跳转到登录页面 24 $this->jump('index.php?c=admin&a=login','您已退出后台登录!'); 25 } 26 }
当然,这里是在mvc中实现的,你也可以把jump()单独提出来进行使用。
附上一个效果图:
下一篇: golang 使用匿名结构体的问题