我正在为应用程序使用bootstrap,php和mysql。有了这个,每当用户登录时,管理员都会将消息发布到将在页面上显示为警报的所有用户。下面是我的ajax代码:
$.ajaxSetup(
{
cache: false,
beforeSend: function() {
$('#admin_message').hide();
},
complete: function() {
$('#admin_message').show();
},
success: function() {
$('#admin_message').show();
}
});
var $admin_msg = $("#admin_message");
$admin_msg.load("get_message_board.php");
var refreshId = setInterval(function()
{
$admin_msg.load('get_message_board.php');
}, 10000);
以下是我的警告持有人
<div class="alert alert-success" id="alert_holder">
<p id="admin_message" style="text-align: center;font-size: 20px"></p>
</div>
PHP SCRIPT:
include './functions.php';
$sql = "select message from msg_db3 where user_group ='".$_SESSION['active_user_group']."' order by id DESC LIMIT 1";
$temp = return_results($sql);
echo $temp['0']['message'];
现在我想确保默认隐藏div(带有id =&#39; alert_holder&#39;)并仅在 echo $ temp [&#39; 0&#39;]时显示[&#39; message&#39;] 不为空。如果为空,则应隐藏。转换也有点奇怪,因为它会在屏幕上显示警报时震动整个页面。
请就上述建议。
提前谢谢。
答案 0 :(得分:2)
编辑: 你可以试试普通的Ajax吗?
$.ajax({
url: "get_message_board.php"
})
.done(function( data) {
console.log(data);
if(data.length>0){
$('#admin_message').show();
} else {
alert('not found');
}
}
});
检查您的回复长度并显示它是否为空
success: function(data) {
if(data.length>0){
$('#admin_message').show();
}
}
在php脚本中,您可以更改为
if(isset($temp['0'])){
echo $temp['0']['message'];
}
答案 1 :(得分:0)
您的代码的主要问题是
complete: function() {
$('#admin_message').show();
},
每次完成ajax时,此代码都会显示#admin_message。
如果您删除了这个不必要的部分,则只能通过if
检测进行我的第一次更改。