我有一个简单的php脚本查询数据库以查找用户名和密码匹配,如果找到匹配,则回声'成功'否则回声'失败|这些详细信息不正确,请检查并重试。'< / p>
我正在使用ajax触发此功能并根据响应数据执行操作。问题是,无论我使用什么方法,if语句什么也不做,但如果我给出一个静态值它工作正常!这是我10,000次尝试中的3次:
方法1 - 始终返回-1
function userLogin(){ $ .post(sysFolder +'cmd.php?action = userLogin',$('#login')。serialize(), function(data){ 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],但if语句不触发
function userLogin(){ $ .post(sysFolder +'cmd.php?action = userLogin',$('#login')。serialize(), function(data){ 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响应
function userLogin(){ $ .post(sysFolder +'cmd.php?action = userLogin',$('#login')。serialize(), function(data){ var arr ='fail';
if(arr[0] == 'fail'){
alert('no');
//$('#login .msg').text(msg[1]).slideDown();
}else if(arr[0] == 'success'){
alert('yes');
//window.location.href = homeFolder;
}
}
);
}
这是当前网站的链接,目前正在尝试使用上述方法2 http://57bit.com/admin/ 请帮助!
答案 0 :(得分:0)
jQuery post函数的语法是:
jQuery.post( url, [data,] [success(data, textStatus, jqXHR),] [dataType] )
所以你应该将de success function定义为:
function(data,status,jqXHR) {
// ...
}
答案 1 :(得分:0)
在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;
}
}
);