jQuery 和 Ajax 请求数据问题

jQuery and Ajax request data issue

本文关键字:数据 问题 请求 Ajax jQuery      更新时间:2023-09-26

我对这段代码有问题:

setInterval(function() {
        var timed = $("#chMsgCont").find(".chatMsg:last-child");
        var timee = timed.attr("data");
        $.ajax({
            url: "./ajax/checknew.php",
            data: {timestamp: timee},
            success: function(data) {
                $("#chMsgCont").append(data);
                if(data != null) {
                var div = $('#chMsgCont');
                var o = div.offset().top; 
                div.scrollTop( o + 12302012 );
                }
            }
        });
    },1000);

即使数据为空,$("#chMsgCont)向下滚动,为什么?

试试这个方式:

if(data)

或者这样:

if(data != null && data != "")

基本上,在这些情况下,if(data)被视为数据是错误的:

  • 数据是 " 或 '' => 空字符串

  • 数据为假

  • 数据为空

  • 数据未定义

data只是空的,而不是null(未定义),所以它会通过,尝试在你的PHP文件中返回一些额外的东西。

我更喜欢在PHP端执行以下操作:

/* suppose that i am evaluating an insert to my DB */
print(1); //if success
print(0); //if error

然后在 JavaScript 端,执行以下操作:

if(data == 1) //means success

或者,如果您不是在 PHP 端评估某些内容,则只需执行以下操作:

if(data != null && data != '')