Php 将ajax响应获取到数组中,然后检查该数组是否具有特定值
我有一个简单的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=‘失败’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').
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;
}
}
);