2017-10-17 56 views
0

這是我的問題,我嘗試使用jgrwol通知並完成。現在我想讓通知在登錄後彈出一次。當我刷新頁面或移動另一個菜單並返回到通知菜單時,它不應該彈出。我想要jgrowl只會在登錄後彈出一次

CODE:

<script type="text/javascript"> 
    $(function() { 
     $.jGrowl("<p class='upper'><i class='fa fa-exclamation-triangle' aria-hidden='true'></i> <?=$row['NTFY_TTL'];?></p><?=$row['NTFY_DESC'];?><br> <small>Posted <?=$row['BEG_DT'];?></small>", { 
      theme: 'test', 
      position: 'top-right', 
      life: 3000 
     }); 
    }); 
</script> 

CODE LOGIN:

<?php 
include "framework/database/connect.php"; 

$loginUserID=$_POST['userID']; 
$password=$_POST['password']; 
if(substr($password,-1)=="~"){ 
    $display="?DISP=ON"; 
    $password=substr($password,0,-1); 
} 
if(substr($password,-1)=="+"){ 
    $display="?DISP=TRIM"; 
    $password=substr($password,0,-1); 
} 
if($password!=''){ 
    $query="SELECT SEC_KEY,PRSN_NBR,PWD FROM CMP.PEOPLE PPL INNER JOIN CMP.POS_TYP POS ON PPL.POS_TYP=POS.POS_TYP WHERE PRSN_ID='".$loginUserID."' AND (PWD='".$password."' OR PWD='".hash('sha512',$password)."') AND TERM_DTE IS NULL"; 
    //echo $query; 
    $result=mysql_query($query); 
    $row=mysql_fetch_array($result); 
    if(mysql_num_rows($result)==0){ 
     $warning="<font color='red'>Id or Pass is wrong.</font><br />"; 
    }else{ 
     $warning="<br/>"; 
     $_SESSION['userID']=$loginUserID; 
     $_SESSION['personNBR']=$row['PRSN_NBR']; 
     //Enforce hashing 
     if($row['PWD']==$password){ 
      $query="UPDATE CMP.PEOPLE SET PWD='".hash('sha512',$password)."' WHERE PRSN_NBR=".$_SESSION['personNBR']; 
      //echo $query; 
      $result=mysql_query($query); 
     } 
     header('Location:index.php'.$display); 
     exit; 
    } 
}elseif($_GET['COMMAND']=="LOGOUT"){ 
    unset($_SESSION['userID']); 
    unset($_SESSION['personNBR']); 
}elseif($_GET['COMMAND']=="LOCK"){ 
    $defServer=$OLTA; 
    mysql_connect($defServer,"root","Pr0reliance"); 
    mysql_select_db("cmp"); 
    $query="UPDATE NST.PARAM_LOC SET TAX_LOCK=1"; 
    $result=mysql_query($query); 
}elseif($_GET['COMMAND']=="UNLOCK"){ 
    $defServer=$OLTA; 
    mysql_connect($defServer,"root","Pr0reliance"); 
    mysql_select_db("cmp"); 
    $query="UPDATE NST.PARAM_LOC SET TAX_LOCK=0"; 
    $result=mysql_query($query); 
    $defServer=$OLTP; 
} 
?> 
+2

其中是登錄代碼? –

+1

您可以使用會話flashdata,或者您可以在登錄代碼中定義會話,例如, '$ _SESSION ['just_login'] = 1;'然後在'$ .jGrowl'調用之後手動'取消設置'。 –

+0

我更新並添加了我的登錄代碼 –

回答

0

的裝置使用localStorage的,並得到價值。 Check this fiddle,當您登錄頁面時清除本地存儲,當您從登錄頁面返回到菜單頁面時,它會再次顯示。

$(function() { 
    if(!localStorage.getItem('growl')){ 
     $.jGrowl("<p class='upper'><i class='fa fa-exclamation-triangle' aria-hidden='true'></i> <?=$row['NTFY_TTL'];?></p><?=$row['NTFY_DESC'];?><br> <small>Posted <?=$row['BEG_DT'];?></small>", { 
      theme: 'test', 
      position: 'top-right', 
      life: 3000 
     }); 

       localStorage.setItem('growl', true); 
    } 

}); 

對於localstorage刪除。

localStorage.removeItem('growl'); 
+0

爲刪除,我把這個代碼? –

+0

在登錄頁面把這個刪除代碼 –

+0

但我試着添加第一個代碼設置,通知不會彈出。 –