一、先從官網將方法整理成一般網頁
<!--引入CSS--> <link rel="stylesheet" type="text/css" href="http://cdnjs.cloudflare.com/ajax/libs/jquery-jgrowl/1.4.1/jquery.jgrowl.min.css" />
<!--引入JS--> <script src="http://cdnjs.cloudflare.com/ajax/libs/jquery-jgrowl/1.4.1/jquery.jgrowl.min.js"></script>
<!--調用插件--> <script type="text/javascript"> $(document).ready(function(){ $.jGrowl('訊息通知中心', { life:3000 , position: 'center', speed: 'slow' }); }); </script>
<!DOCTYPE html> <html lang="zh-TW"> <head> <meta charset="utf-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta name="viewport" content="width=device-width, initial-scale=1"> <title>jQuery jGrowl</title> <!-- Bootstrap --> <link href="css/bootstrap.min.css" rel="stylesheet"> <!-- HTML5 shim and Respond.js 讓 IE8 支援 HTML5 元素與媒體查詢 --> <!-- 警告:Respond.js 無法在 file:// 協定下運作 --> <!--[if lt IE 9]> <script src="https://oss.maxcdn.com/html5shiv/3.7.2/html5shiv.min.js"></script> <script src="https://oss.maxcdn.com/respond/1.4.2/respond.min.js"></script> <![endif]--> <!-- jQuery (Bootstrap 所有外掛均需要使用) --> <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script> <!-- 依需要參考已編譯外掛版本(如下),或各自獨立的外掛版本 --> <script src="js/bootstrap.min.js"></script> </head> <body> <h1>jQuery jGrowl</h1> <!--引入CSS--> <link rel="stylesheet" type="text/css" href="http://cdnjs.cloudflare.com/ajax/libs/jquery-jgrowl/1.4.1/jquery.jgrowl.min.css" /> <!--引入JS--> <script src="http://cdnjs.cloudflare.com/ajax/libs/jquery-jgrowl/1.4.1/jquery.jgrowl.min.js"></script> <!--調用插件--> <script type="text/javascript"> $(document).ready(function(){ $.jGrowl('訊息通知中心', { life:3000 , position: 'center', speed: 'slow' }); }); </script> </body> </html>
function redirect_header($url="", $time = 3000, $message = '已轉向!!') { $_SESSION['redirect']=" $(document).ready(function(){ $.jGrowl('{$message}', { life:{$time} , position: 'center', speed: 'slow' }); }); "; header("location:{$url}"); exit; }
function:將指令、函數組合成一個套件。
可設預設值:$time = 3000 ,3000即是預設值
回傳:利用 return 傳回變數或陣列
這裡利用 $_SESSION['redirect'] ,當這個變數有值,即代表有轉向動作,因此在佈景可以判斷 $_SESSION['redirect'] 是否有值,如果有,則調用插件顯示訊息。
當程式執行 redirect_header(),除了設定 $_SESSION['redirect']外,並執行轉向 header("location:{$url}");
前、後台head.php
$_SESSION['redirect']=isset($_SESSION['redirect'])?$_SESSION['redirect']:""; $smarty->assign("redirect", $_SESSION['redirect']); $_SESSION['redirect']="";
<?php require_once 'head.php'; #整理傳入變數 $op = isset($_REQUEST['op'])?$_REQUEST['op']:""; #定義變數, $_SESSION['uname']用來判斷是否登入 $_SESSION['uname']=isset($_SESSION['uname'])?$_SESSION['uname']:""; #程式流程 switch($op){ #登入 case "check_uname": $msg = check_uname(); if($msg){ #如果帳號、密碼,驗證ok,則跳轉至,後台首頁 $_SESSION['uname'] = true; redirect_header("admin/index.php",3000,"您好:歡迎光臨!!<br>目前在後台首頁!!"); //header("location:admin/index.php"); exit; } break; #---- case "logout": $_SESSION['uname'] = ""; redirect_header("index.php",3000,"您已經登出!!"); exit; break; //預設動作 default: $op="op_list"; if($_SESSION['uname']){ #如果已經登入,則跳轉至後台的首頁 redirect_header("admin/index.php",3000,"您好:歡迎光臨!!<br>目前在後台首頁!!"); exit; } break; } #將變數送至樣板引擎 #op $smarty->assign("op", $op); #檔案名稱(含副檔),變數在head.php $smarty->assign("WEB", $WEB); #程式結尾 $smarty->display('theme.html'); #函數 ######################################## # check_uname ######################################## function check_uname() { #過濾接教變數, 特殊字符轉義 $_POST['uname'] = addslashes($_POST['uname']); $_POST['pass'] = addslashes($_POST['pass']);// if($_POST['uname'] == "admin" and $_POST['pass'] == "admin123456")return true; return; } ######################################## # op_test1 ######################################## function op_test1() { return; }
{if $redirect} <link rel="stylesheet" type="text/css" href="{$smarty.const.WEB_URL}/class/jgrowl/jquery.jgrowl.min.css" /> <script src="{$smarty.const.WEB_URL}/class/jgrowl/jquery.jgrowl.min.js"></script> <script type='text/javascript'> {$redirect} </script> {/if}