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

Php 将ajax响应获取到数组中,然后检查该数组是否具有特定值,php,jquery,ajax,arrays,response,Php,Jquery,Ajax,Arrays,Response,我有一个简单的php脚本,可以查询数据库以查找用户名和密码匹配项,如果找到匹配项,则返回“成功”,否则返回“失败”|这些详细信息不正确,请检查并重试 我正在使用ajax触发此函数,并根据响应数据执行操作。问题是,无论我使用什么方法,if语句都不起任何作用,尽管如果我给出一个静态值,它可以正常工作!!以下是我10000次尝试中的3次: 方法1-始终返回-1 函数userLogin(){ $.post(sysFolder+'cmd.php?action=userLogin',$('\login').

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

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

方法1-始终返回-1

函数userLogin(){ $.post(sysFolder+'cmd.php?action=userLogin',$('\login').serialize(), 功能(数据){ var arr=data.split(“|”)

}

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

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

}

方法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;
        }
    }
);
}

这里有一个指向当前站点的链接,该站点目前正尝试使用上述方法2
请帮助!

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;
        }
    }
);

感谢您的回复francadaval。但是我可能还不够清楚。是if语句似乎没有读取arr[0]。如果我通知arr[0]我得到了预期的'fail'或'success',但if语句没有看到这一点。我的success/fail来自cmd.php中的一个php回音,其中数据库是从jQuery页面查询的:$.inArray()方法类似于JavaScript的本机.indexOf()方法,在未找到匹配项时返回-1。如果数组中的第一个元素与值匹配,$.inArray()返回0。
function(data,status,jqXHR) {
    // ...
}
$.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;
        }
    }
);