我正在开发一个php/MySQL项目,要求我在用户输入用户名时实时检查用户名。
这是我username.php在用户实际输入用户名密码&从check.php被触发哪里...
检查用户名是否通过AJAX在php中实时存在mysql
<html>
<head>
<script type="text/javascript" src="js/jquery-1.7.1.min.js"></script>
<script type="text/javascript">
$(document).ready(function(){
$("#username").change(function(){
$("#message").html("<img src='images/loader.gif' /> checking...");
var username = $("#username").val();
$.ajax({
type:"post",
url:"check.php",
data:"username =" + username,
success:function(data){
if(data==0){
$("#message").html("<img src='images/tick.png' /><span style='font-size:13px; color: black'> Username available</span>");
}
else{
$("#message").html("<img src='images/err.png' /><span style=font-size:13px; color: red'> Username already taken</span>");
}
}
});
});
});
</script>
</head>
<body>
<table>
<tr>
<td>Username</td>
<td>:</td>
<td><input type="text" name="username" id="username"/><td>
<td id="message"><td>
</tr>
<tr>
<td>Password</td>
<td>:</td>
<td><input type="text" name="password" id="password" /><td>
</tr>
</table>
</body>
</html>
这是check.php其中在数据库中检查用户名。现在
<?php
$con = mysqli_connect("localhost", "root", "hilbi", "userdb");
if (mysqli_connect_errno())
{
echo "Failed to connect to MySQL: " . mysqli_connect_error();
}
// $username = $_POST["username"];
$username = 'hilbi';
$query = mysqli_query($con,"SELECT * FROM users WHERE username = '$username' ");
$find = mysqli_num_rows($query);
echo $find;
mysqli_close($con);
?>
的check.php工作正常(我通过单独执行它检查并在发现的用户名返回和反之亦然)
然而,当我执行username.php它总是返回用户名已被拍摄。它看起来实际上并没有在数据库中看到实际上没有这种用户名的地方。
任何形式的帮助将非常感激......
您在发送用户名错误 –
尝试添加警报(数据);里面的成功回调函数,所以你可以看到从php – Praveen
@Muhammad M是返回什么是的,我不得不将它更改为静态用户名后动态不工作,只是为了确保查询工作。 – echology