2015-09-02 42 views
1

在我的應用程序的標題中,我有通知消息圖標。使用PHP和Jquery的通知消息

例如,當一個新的記錄被插入到表中,必須出現在通知消息管理,像這樣:

image1

如果我切換按鈕,它看起來是這樣的:

enter image description here

但問題是,當我點擊通知按鈕,它顯示的數據,但notofications的計數不重置爲零。

我需要的是當我點擊通知鏈接時,通知數量應該被重置爲零。

它應該看起來像下面的圖片

image3

這是我的代碼:

<!-- Messages: style can be found in dropdown.less--> 
       <li class="dropdown messages-menu"> 
        <a href="#" class="dropdown-toggle" data-toggle="dropdown" id="notify-comet"> 
         <i class="fa fa-envelope-o"></i> 
         <span class="label label-success" id="not-count"> 
          <?php 
           $count = Delay::find() 
             ->where(('id') !== 0) 
             ->orderBy('id') 
             ->count(); 
           echo "$count"; 
          ?> 
         </span> 
        </a> 
        <ul class="dropdown-menu"> 
         <li class="header">You have <?php echo "$count" ?> messages</li> 
         <?php 
          $qry = Delay::find()->all(); 
          foreach ($qry as $key => $value) 
          { 
         ?> 
          <div class="delay-notification"> 
          <ul class="menu"> 
           <li><a href="index.php?r=delay"><?php echo $value->claimer_name; ?> &nbsp <?php echo $value->company_name; ?></a></li> 
          </ul> 
          </div> 
         <?php 
          $i = 1; 
          if ($i++ == 4) break; 
          } 
         ?> 

         <li class="footer"><a href="index.php?r=delay">See All Messages</a></li> 
        </ul> 
       </li> 

       <?php 
        } 
       ?> 
+0

點擊後,您應該調用AJAX /簡單地用JavaScript代替內部HTML。 – Kamal

+0

@Nodemon,你找到答案了嗎?請與我分享。 –

回答

0

做一個簡單的事情,當你點擊鏈接或按鈕(這表明你的計)調用ajax函數,將計數重置爲零或簡單的j查詢可以通過停留該跨度的值爲您執行此操作。

+0

爲此,你必須保持狀態。如果值來自數據庫,那麼如果消息已被讀取,您可以在數據庫中獲取一個狀態字段(當您單擊按鈕時,使狀態爲假,意味着msg已被讀取)將該值設置爲false,以便檢查文檔負載使用ajax命中。如果這無法幫助你,請讓我更多地瞭解這一點。 –

+0

我怎麼知道這些數據是否已被讀取 – Nodemon

1

使用jQuery綁定事件上.messages-menu

jQuery(document).ready(function($){ 
    $('#notify-comet').on('click', function(e){ 
     $("#not-count").html("0"); 
    }) 
}) 

當你打開下拉菜單將計數器每次重置爲0。

+0

這是完美的工作,但同時刷新頁面或移動到另一個選項卡,再次獲取重置值 – Nodemon

+0

您是否使用'.message-menu'某個地方?使'.message-menu'獨一無二。 –

+0

我沒有使用消息菜單,我正在使用#notify-comet,bcoz我沒有類如消息菜單 – Nodemon

0
<?php 
session_start(); 
include("../connect.php"); 
$user=$_SESSION['user']; 
if(empty($user)) 
{ 
    header("location:index.php"); 
} 
else{ 
$query_not="SELECT count(status) AS sum FROM `user_leave_details` where status='1' Or status='4' or status='5'"; 
$result=mysqli_query($bd,$query_not); 
while($arr=mysqli_fetch_array($result)) 
{ 
$sum=$arr['sum']; 
} 
?> 
<html> 
<head> 
<li class="dropdown messages-menu"> 
<a href="" class="dropdown-toggle"><span style="color:white"><i class='fa fa-comment-o' title="Notification"></i></span> 
<span class="badge" style="color:#FF0000"> 
<?php if(empty($_POST['hide'])) 
{ 
echo $sum; 
} 
else 
{ 
echo $sum=0; 
}?> 
</span></a>         
<ul style="display: none;" class="dropdown-menu bold"> 
<?php 
$query="SELECT * FROM user_leave_details WHERE status='1' Or status='4' or status='5'"; 
$sl_no=1; 
$result=mysqli_query($bd,$query); 
if(mysqli_num_rows($result)>0) 
{              while($row=mysqli_fetch_array($result)) 
               { 
               $user_id=$row['leave_id']; 
               $user_name=$row['user_name']; 
               $no_days=$row['no_leave']; 
               $leave_from=$row['leave_from']; 
               $leave_to=$row['leave_to']; 
               $status=$row['status']; 
              ?> 
             <li name='hlo'><?php echo "<a href='admin_approved.php?reg_id=$user_id' id='hide'' name='hide'>";?><?php if($status==1){echo $user_name." request permission for ".$no_days. " day/days leave from ".$leave_from ." to ".$leave_to;}else if($status==4){echo $user_name." leave reduced from ".$leave_from." to".$leave_to ;}else if($status==5){echo $user_name." cancel for the leave from ".$leave_from." to ".$leave_to;}echo " </a>"; ?> </li> 
              <?php 
              if(isset($_POST['hlo'])) 
              { 
               echo $sum=0; 
              } 
              } 

              } 
             ?> 

           </ul> 
          </li> 
</head> 
</html> 
connect.php 
<?php 
$mysql_hostname = "localhost"; 
$mysql_user = "root"; 
$mysql_password = "";$mysql_database = "";  $bd=mysqli_connect($mysql_hostname,$mysql_user,$mysql_password,$mysql_database); 
?>  
+0

我已經做到了這一點,通過使用MySQL不是sqli ...如果你張貼我一個回答爲mysql..it將對我有用... – Nodemon