我有一个简单的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;
}
}
);