使用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; ?>   <?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的答案…这对我很有用。。。