Javascript 如何从AJAX中获取数据并相应地显示/隐藏div
我正在编写一个PHP脚本,它回显一个表示未读消息数量的数字 我有以下代码,每30秒处理一次PHPJavascript 如何从AJAX中获取数据并相应地显示/隐藏div,javascript,php,jquery,ajax,get,Javascript,Php,Jquery,Ajax,Get,我正在编写一个PHP脚本,它回显一个表示未读消息数量的数字 我有以下代码,每30秒处理一次PHP setInterval(function (){ $.ajax({ url: "php/notifications_counter.php", cache: false, success: function(number){ $("#notifica
setInterval(function (){
$.ajax({
url: "php/notifications_counter.php",
cache: false,
success: function(number){
$("#notification_counter").show();
$("#notification_counter_number").text(number);
}
});
},5010);
PHP回显应插入名为“#通知_计数器_编号”的div中的编号。事实上,数字被插入。但是出于某种奇怪的原因,php文件中的注释与数字一起也得到了回应?我不能让它正常工作
此外,我希望#notification_计数器在有回音数字时显示,但在没有回音数字时隐藏。为此,我尝试了以下代码:
...success: function(number){
if (number > 0) {
$("#notification_counter").show();
$("#notification_counter_number").text(number);}
else {$("#notification_counter").show();}
}
这也不行:(div总是被隐藏,即使PHP输出的数字大于0。希望你们能帮上忙
更新:这是我的php文件:
<!--
blabla commenting, so this gets visible as text in DIV as well. Strange...
!-->
<?php
include "config.php";
//Count unread messages from database
$Number_Query = mysqli_query ($mysqli, "SELECT * FROM notifications WHERE Notification_Read='0' ");
$Notification_Count = mysqli_num_rows($Number_Query);
if ($Notification_Count > 0) {
echo "$Notification_Count"; }
//Close connection
mysqli_close($mysqli);
?>
是一个HTML注释,输出到浏览器,只需更改为php注释:
<?php
/*
blabla commenting, so this gets visible as text in DIV as well. Strange...
*/
include "config.php";
因此,当您通过ajax获取页面时,它将返回整个页面,而不仅仅是您在浏览器中看到的内容。因此我们需要查看通知\u counter.phpBTW:不要使用setInterval
,而是使用setTimeout
,我们可以看到您在php文件中如何进行注释吗?唯一的显示方式是它是否真的存在从理论上来说,这是网页的回音。如果你直接点击php/notifications\u counter.php
url,你会在网页上看到什么?添加了php文件。但是我确信它工作正常。数字会输出到网页上,但问题是注释也会被输出……这仍然会失败,因为他的javascript需要一个数字和一个数字对其执行计算if(number>0).
谢谢!将尝试此操作
$Notification_Count = mysqli_num_rows($Number_Query);
header('Content-Type: application/json');
echo json_encode(array('count'=>$Notification_Count));
//javascript
success: function(data){
if (data.count > 0)...