Javascript检查数据库中的新结果

时间:2015-06-29 12:18:38

标签: javascript php

我正在研究用于检查数据库更新的Javascript函数,第一部分检查更新,正在工作(javascript将一个帖子请求发送到一个php文件,然后显示结果,如果有&#39 ; s any)。

当事情发生时,用户会在nav-bar中收到通知。

问题:如果用户检查新闻,那么即使用户已经看到新闻,导航栏也会显示相同的通知。

相反,JS应该只搜索新结果。

这方面的正确方法是什么?

HTML:

<li><a href="home?show=my_turn">My turn <span id="my_turn_news" class="badge" style="display: none;">0</span></a>/li>

腓:

if ($_POST['check'] == 'my_turn') {
    $my_turn = sqlSelect("SELECT DISTINCT(story_writers.story_id) FROM `story_writers` INNER JOIN story WHERE story_writers.user_id = {$_POST['user_id']} AND story_writers.on_turn = 1 AND story.total_rows < story.max_rows;");

    if (count($my_turn) > 0)
        echo count($my_turn);
}

使用Javascript:

var xmlhttp = new XMLHttpRequest();
var overview_news = document.getElementById('overview_news');
var my_turn_news = document.getElementById('my_turn_news');

setInterval(function checkMyTurn() {
    xmlhttp.onreadystatechange = function() {
        if (xmlhttp.status == 200 && xmlhttp.readyState == 4) {
            if (xmlhttp.responseText > 0) {
                if (overview_news.style.display == 'none' && my_turn_news.style.display == 'none') {
                    overview_news.style.display = 'inline';
                    my_turn_news.style.display = 'inline';
                }

                my_turn_news.innerHTML = xmlhttp.responseText;
            }
        }
    }

    xmlhttp.open('POST', 'functions/search.php', true);
    xmlhttp.setRequestHeader("Content-type","application/x-www-form-urlencoded");
    xmlhttp.send('check=my_turn&user_id=<?=$_SESSION['user_id']; ?>'); 
}, 3000);

0 个答案:

没有答案