Php AJAX变量是';t传递到if语句

Php AJAX变量是';t传递到if语句,php,jquery,ajax,Php,Jquery,Ajax,当我通知userID时,我从else语句中得到了正确的通知号。 if语句根本不会发出警报。所以我假设我放在那里的条件有问题 奇怪的是,即使使用else语句,我的div也不会改变颜色,但它确实正确地发出警报,所以我感到困惑 AJAX函数 $.ajax({ url: 'status.php', dataType: "json", type: 'GET', success: function(data) { if (data.message === "online

当我通知userID时,我从else语句中得到了正确的通知号。 if语句根本不会发出警报。所以我假设我放在那里的条件有问题

奇怪的是,即使使用else语句,我的div也不会改变颜色,但它确实正确地发出警报,所以我感到困惑

AJAX函数

$.ajax({
   url: 'status.php',
   dataType: "json",
   type: 'GET',
   success: function(data) {
       if (data.message === "online"){
           $('.status #user'+data.userId).css({background: '#40A547'});  
       } else{ 
            //alert(data.userId);
           $('.status #user'+data.userId).css({background: '#7f8c8d'});
       }
   }
});
status.php

header('Content-Type: application/json');
$array = array();

if (logged_in() === true){
    $res8 = mysql_query("SELECT * FROM `users` LIMIT 1");
    if(mysql_num_rows($res8) > 0){
        while($row8 = mysql_fetch_assoc($res8)){
            if ($row8['status'] === "1") {                  
                $array['message'] = 'online';
                $array['userId'] = $row8['user_id'];
            }
        }
    }
}


 else {  
   $array['message'] = 'offline'; 
   $array['userId'] = '2'; // just for testing
}

    echo json_encode($array);
div

<div class="status" id="user2">test</div>
测试
这是错误的:

$('.status #user'+data.userId)
----------^ <--- See space

还删除了
.status
选择器,因为ID将是特定的。

我猜该块

if ($row8['status'] === "1") {                  
    $array['message'] = 'online';
    $array['userId'] = $row8['user_id'];
} 
永远不会触发$从数据库返回的第8行['status']始终为0。除非数据库同时出现故障,否则不会触发将消息设置为脱机的回退语句

您应该运行以下PHP测试用例:

header('Content-Type: application/json');
$array = array();

$array['message'] = 'online'; 
$array['userId'] = '2'; // just for testing

并从上面确认JQuery修复。然后返回数据库并验证实际登录情况。

在哪里以及如何使用
logged\u-in()
功能?在您的问题/代码中没有其他对它的引用。它只是一个函数,可以执行以下操作:return(isset($\u SESSION['user\u id'))?真:假;警报<代码>数据。消息在条件出现之前。你得到了什么输出?我“离线”alerted@Gadgetster您是否包含了
登录的文件()
函数声明?还要执行
var\u dump(logged\u in())
并告诉我们输出。或者最好从选择器中删除
.status
,因为ID部分足够具体。@PeterHerdenborg Updated.that worked。状态有一个我给它的总体布局。而且,在第一次检查之前,帖子必须有颜色,对吗?还有,当我登录时,如何修复if语句?是的,这也是我想做的。谢谢你的意见!
header('Content-Type: application/json');
$array = array();

$array['message'] = 'online'; 
$array['userId'] = '2'; // just for testing