php ajax - 仅当返回的数据不为空时自动刷新div

时间:2015-02-19 14:34:21

标签: php ajax

我正在为应用程序使用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;] 不为空。如果为空,则应隐藏。转换也有点奇怪,因为它会在屏幕上显示警报时震动整个页面。

请就上述建议。

提前谢谢。

2 个答案:

答案 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检测进行我的第一次更改。