一、先從官網將方法整理成一般網頁
<!--引入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}