将ajax响应获取到数组中,然后检查该数组是否具有特定值


getting an ajax response into an array then checking if that array has a specific value

我有一个简单的php脚本,它查询数据库以查找用户名和密码匹配,如果找到匹配,则返回"成功",否则返回"失败"|这些详细信息不正确,请检查并重试。'

我使用ajax来触发这个函数,并根据响应数据执行操作。问题是,无论我使用什么方法,if语句都不会起任何作用,尽管如果我给出一个静态值,它也能正常工作!!这是我10000次尝试中的3次:

方法1-总是返回-1

函数userLogin(({$.post(sysFolder+'cmd.php?action=userLogin',$('#login'(.serialize((,函数(数据({var arr=data.split('|'(;

        if($.inArray('fail',arr)){
            alert('no');
            //$('#login .msg').text(msg[1]).slideDown();
        }else if($.inArray('success',arr)){
            alert('yes');
            //window.location.href = homeFolder;
        }
    }
);

}

方法2-arr[0]在警报中被识别,但如果语句没有触发

函数userLogin(({$.post(sysFolder+'cmd.php?action=userLogin',$('#login'(.serialize((,函数(数据({var arr=data.split('|'(;

        if(arr[0] == 'fail'){
            alert('no');
            //$('#login .msg').text(msg[1]).slideDown();
        }else if(arr[0] == 'success'){
            alert('yes');
            //window.location.href = homeFolder;
        }
    }
);

}

方法3-完美地触发失败操作,但显然没有读取php/ajax响应

函数userLogin(({$.post(sysFolder+'cmd.php?action=userLogin',$('#login'(.serialize((,函数(数据({var arr="失败";

        if(arr[0] == 'fail'){
            alert('no');
            //$('#login .msg').text(msg[1]).slideDown();
        }else if(arr[0] == 'success'){
            alert('yes');
            //window.location.href = homeFolder;
        }
    }
);

}

这是当前站点的链接,该站点当前正尝试使用上述方法2http://57bit.com/admin/请帮忙!

jQuery post函数的Sintax为:

jQuery.post( url, [data,] [success(data, textStatus, jqXHR),] [dataType] )

因此,您应该将去成功函数定义为:

function(data,status,jqXHR) {
    // ...
}

if语句中读取的相同值不同!因此,我在查询的值中添加了$.trim()函数,以清除任何其他不需要的空格等。我的代码现在看起来是这样的:

$.post( sysFolder+'cmd.php?action=userLogin', $('#login').serialize(),
    function(data) {
        var arr = data.split('|');
        if($.trim(arr[0]) == 'no'){
            $('#login .msg').text(arr[1]).slideDown();
        }else if($.trim(arr[0]) == 'yes'){
            window.location.href = homeFolder;
        }
    }
);