jQuery Code无论如何运行

Koa*_*ala 0 php sql jquery

我有这个jQuery代码,它只是假设在数据库中找到记录时显示新消息的警报.

index.html(jQuery代码)

<script type="text/javascript" src="http://code.jquery.com/jquery-1.8.2.min.js"></script>

<script>

$(document).ready(function(){
    var count = 0;
    setInterval(function() {
        $.post("messagecheck.php", { countOld: count },
        function(data){
            if(data == 0) {
                alert("No New Messages");
                return;
         } else {
                count = data; // This will change the count for each run, you could store this in div with .data() ...
                alert("New Message!");
                return;        
         }
            });
        }, 1000);
    });
</script>
Run Code Online (Sandbox Code Playgroud)

messagecheck.php

<?php

    if($uid == 0) {
        die(); // not logged in
    } else {
        $sql = 'SELECT messagecount FROM Users WHERE uid = $uid AND messagecount >= 1';
        $result = mysql_query($sql);         
        if(!$result) {
            // Kill SQL and return error
        } else {
            // We will be sending an Old Count via POST
            $numRows = mysql_num_rows($result);
            echo $numRows;
            if( $numRows == $_POST['countOld']) {
                // No change
                echo 'No change: 0';    
            } else 
                echo $numRows;
        }
    }

?>
Run Code Online (Sandbox Code Playgroud)

即使$ uid为0(用户未登录),也会显示新消息的警报!显示.

我该怎么做才能解决这个问题?

谢谢.

Dav*_*vid 7

这是你的条件:

if(data == 0) {
Run Code Online (Sandbox Code Playgroud)

这是你的AJAX调用返回的内容:

echo 'No change: 0';
Run Code Online (Sandbox Code Playgroud)

条件评估false因为'No change: 0'不相等0.