使用PHP和Jquery的通知消息

使用PHP和Jquery的通知消息,jquery,Jquery,在我的应用程序的标题中,我有一个通知消息图标 例如,当一条新记录插入表中时,必须向管理员显示通知消息,如下所示: 如果我切换按钮,它看起来如下所示: 但问题是,当我单击通知按钮时,它会显示数据,但标记计数不会重置为零 我需要的是,当我单击通知链接时,通知的数量应该重置为零 它应该如下图所示 这是我的代码: <!-- Messages: style can be found in dropdown.less--> <li class="dro

在我的应用程序的标题中,我有一个通知消息图标

例如,当一条新记录插入表中时,必须向管理员显示通知消息,如下所示:

如果我切换按钮,它看起来如下所示:

但问题是,当我单击通知按钮时,它会显示数据,但标记计数不会重置为零

我需要的是,当我单击通知链接时,通知的数量应该重置为零

它应该如下图所示

这是我的代码:

<!-- 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
                    }
                ?>

    • 您有消息

  • 当您单击链接或on按钮(显示计数)时,请执行一件简单的操作,调用ajax函数将计数重置为零,或者simple j query可以通过将该跨度的值保留下来为您执行此操作。

    使用jQuery在
    上绑定事件。messages menu

    jQuery(document).ready(function($){
       $('#notify-comet').on('click', function(e){
            $("#not-count").html("0");
       })
    })
    
    每次打开下拉列表时,它都会将计数器重置为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);
    ?>      
    

    • 单击后,您应该调用AJAX/只需将内部HTML替换为JavaScript即可。@Nodemon,您找到答案了吗?请与我分享。我在点击时使用了此代码,之后如果我重新加载页面,计数将重置,因此您必须保持状态。如果该值来自DB,您可以在DB中为该消息获取一个状态字段,如果消息已被读取(当您单击按钮make status false,表示消息已被读取),则将其设为false,以便可以使用ajax hit检查文档加载。如果这对您没有帮助,请让我了解更多信息。告诉我此消息来自DB的信息?这工作正常,但在刷新页面或移动到另一个选项卡时,值再次被重置。您是否使用了
      。消息菜单
      其他地方?使
      .message menu
      唯一。我没有使用message menu,我使用的是#notify comet,bcoz我没有类似message menu的类在tag中使用此函数如果我也使用messages menu,我会得到相同的结果,我使用的是MySQL而不是sqli…如果你给我一个MySQL的答案…这对我很有用。。。