我有一个登录系统帽子使用ajax和php。表单检查使用javascript完成,然后将表单数据发送到php以检查数据库。 如果用户不在数据库中,php将返回1。 我以前做过这个并且工作正常,但在这里,'没什么'。
JQuery版本:
<script src="http://code.jquery.com/jquery-1.10.1.min.js"></script>
AJAX:
var pass = $('#pass').val();
var user = $('#user').val();
$.ajax({
url: 'func/check-login.php',
type: 'POST',
data:{user:user,pass:pass},
complete: function(e){
alert(parseInt(e));
if(e === 1){
$('#main_error').html('That username password combination is incorrect');
}else{
alert('Log user in');
}
}
});
PHP:
<?php
include '../DB.func/connect.php';
if(!empty($_POST)){
$_POST['user'] = mysql_real_escape_string($_POST['user']);
$_POST['pass'] = mysql_real_escape_string($_POST['pass']);
$username = $_POST['user'];
$password = $_POST['pass'];
if($username == ''){$user_err = 'You must insert tour username';}
if($password == ''){$pass_err = 'You must insert your passowrd';}
$query = mysql_query("SELECT * FROM user_admin WHERE user_name = '$username' OR email = '$username' AND password = '".md5($password)."'")or die(mysql_error());
if(mysql_num_rows != 0){
//login
echo '0';
}else{
echo 1;
}
}else{
echo '1';
}
?>
Ajax的完整功能中的警报没有打开任何内容。
答案 0 :(得分:1)
尝试使用事件成功而不是完成:
$.ajax({
url: 'func/check-login.php',
type: 'POST',
data:{user:user,pass:pass},
success: function(e){
alert(parseInt(e));
if(e === 1){
$('#main_error').html('That username password combination is incorrect');
}else{
alert('Log user in');
}
}
});
答案 1 :(得分:0)
您可能想要e = parseInt(e)
。您目前只是提醒parseInt(e)
。 '1' === 1
是假的。 echo 1
和echo '1'
都以PHP字符串形式返回。
答案 2 :(得分:0)
成功调用ajax函数,并使用错误方法
$.ajax({
url: 'func/check-login.php',
type: 'POST',
data:{user:user,pass:pass},
success: function(e){
if( parseInt(e) === 1){
$('#main_error').html('That username password combination is incorrect');
}else{
alert('Log user in');
}
},
error: function(jqXHR, textStatus, errorThrown)
{
//for checking error console these variables
console.log( jqXHR);
console.log( textStatus);
console.log( errorThrown);
}
});