在PHP開發中,尤其是MVC框架或者項目中,會碰到很多跳轉情況,比如:登錄成功或失敗后的跳轉等等。
以下以MVC框架開發中為基礎,示例講解:
在基礎控制器類中:Conrtoller.class.php
<?php/** * 基礎控制器類 */class Controller { /** * 跳轉 * $url 目標url * $info 提示信息 * $time 等待時間(單位秒) */ protected function jump($url,$info=NULL,$time=3) { //判斷是立即跳轉還是刷新跳轉 if(is_null($info)) { //立即跳轉 header('location:'. $url); die; } else { //刷新跳轉,給出提示 echo <<<TIAOZHUAN<meta http-equiv="Content-Type" content="text/html; charset=utf-8" /><title>提示信息</title><style type='text/css'> * {margin:0; padding:0;} div {width:390px; height:287px; border:1px #09C solid; position:absolute; left:50%; margin-left:-195px; top:10%;} div h2 {width:100%; height:30px; line-height:30px; background-color:#09C; font-size:14px; color:#FFF; text-indent:10px;} div p {height:120px; line-height:120px; text-align:center;} div p strong {font-size:26px;}</style><div> <h2>提示信息</h2> <p> <strong>$info</strong><br /> 頁面在<span id="second">$time</span>秒后會自動跳轉,或點擊<a id="tiao" href="$url" rel="external nofollow" >立即跳轉</a> </p></div><script type="text/javascript"> var url = document.getElementById('tiao').href; function daoshu(){ var scd = document.getElementById('second'); var time = --scd.innerHTML; if(time<=0){ window.location.href = url; clearInterval(mytime); } } var mytime = setInterval("daoshu()",1000);</script>TIAOZHUAN; die; } }}
在MVC的自動加載中,將Controller.class.php進行自動加載注冊
通過不同控制器類繼承上面的Controller.class.php基礎控制器類后,就可以調用定義的跳轉提示。
<?php/** * 后臺管理員控制器(登錄、注銷、管理員的增刪改查等) */class AdminController extends Controller { /** * 展示登錄表單動作 */ public function loginAction() { // 載入當前的視圖文件 $this->display('login.html'); } /** * 后臺注銷功能 */ public function logoutAction() { @session_start(); // 刪除相關會話數據 unset($_SESSION['adminInfo']); // 刪除會話數據區 session_destroy(); // 立即跳轉到登錄頁面 $this->jump('index.php?c=Admin&a=login','您已退出后臺登錄!'); }}
當然,這里是在MVC中實現的,你也可以把jump()單獨提出來進行使用。
附上一個效果圖:
以上所述是小編給大家介紹的PHP的簡單跳轉提示的實現詳解整合,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復大家的。在此也非常感謝大家對VeVb武林網網站的支持!
新聞熱點
疑難解答
圖片精選