【发布时间】:2019-04-11 11:58:35
【问题描述】:
我正在我的 Web 应用程序上开发一个通知系统,而且我是 JS/Ajax 的新手。我需要做的是向我的 PHP 发送一个变量,该变量在我的服务器上运行更新代码以将通知设置为已读,理想情况下,当用户打开通知下拉菜单时。
我尝试使用 OnClick 功能,但是,由于没有更新数据,因此该按钮似乎没有激活 Ajax。目前,我还尝试在我的 a 标签上使用 'data-role' + $(document).on('click','a[data-role=...) 在下拉标签上使用ajax 似乎没有激活。我环顾四周,似乎没有发现任何与这种事情有关的东西。我不知道是否由于 a 标签已经在切换下拉列表,它是否也无法切换 ajax?
免责声明:这是我在这里的第一个问题,如果我过于简单/过于复杂,非常抱歉。
Ajax 代码
$(document).ready(function(){
$(document).on('click','a[data-role=update]',function(){
var read = 'Y';
$.ajax({
url : 'Notification.php',
method : 'post',
data : {read : read},
success : function(response){
// now update user record in table
alert("Ajax sent the info!");
}
});
});
});
当用户点击下拉开关时应该激活它
<a href="#" class="m-nav__link m-dropdown__toggle" data-role="update">
<span class="m-nav__link-badge badge badge-square badge-danger">
<?php echo $count; ?>
//This var is just a badge w/ a number of notifications
</span>
<span class="m-nav__link-icon">
<i class="flaticon-music-2"></i>
</span>
</a>
我的 Notification.php 有以下代码。
include_once("../app_config.php");
$read = $_POST['read'];
if ($read='Y') {
$conexaon = new Connection();
$sqlu = "UPDATE tbl_prinotificacao SET pn_unread = 'N' ORDER BY pn_datetime desc";
$resultu = $conexaon->consulta($sqlu);
if($resultu){
echo 'data updated';
}
}
当用户打开下拉列表并且用户更改页面时,我希望 ajax 通过 post 为 PHP 发送 var,通知应该消失。我单独测试了 PHP,它确实更新了表格上的数据。但是,当我打开下拉菜单时,没有任何与 ajax 相关的事情发生,它只会正常打开下拉菜单并且不会激活 ajax。
【问题讨论】:
-
你收到警报了吗?
-
@Kidus,不,我没有收到警报。
-
@AnandhukrishnaVR,是的,我相信这是正确的。
-
您尝试过什么调试问题?您是否通过浏览器的网络控制台检查了请求是否发送到后端?如果是,后端是否收到预期的数据?
标签: javascript php jquery html ajax