我正在尝试使用ajax进行实时电子邮件可用性检查。我想取输入值并将其发送到php,它将被检查它是否在数据库中,但我无法做到。当我使用Firebug测试脚本时,会有一个响应,但无论电子邮件是否存在,输出始终都是相同的。它总是告诉我不存在。
该表称为公司。电子邮件的表格字段是电子邮件。
与数据库的连接正常。我认为问题出在我的ajax代码中,因为它总是给我" TAKEN"输出
这是我的PHP代码:
<?php
// This is a sample code in case you wish to check the username from a mysql db table
if(isset($_POST['Email']))
{
$email = $_POST['Email'];
$dbHost = 'localhost'; // usually localhost
$dbUsername = 'root';
$dbPassword = 'password';
$dbDatabase = 'php_test';
$db = mysql_connect($dbHost, $dbUsername, $dbPassword)
or die ("Unable to connect to Database Server.");
mysql_select_db ($dbDatabase, $db)
or die ("Could not select database.");
$result = mysql_query("select Email from company where Email='".$email."'")
or die(mysql_error());
if(mysql_num_rows($result))
{
echo 'NOT OK';
}
else
{
echo 'OK';
}
}
?>
这是ajax代码
$(document).ready(function() {
$("#email").blur(function(){
$.ajax({
type: "POST",
url: "unique_check.php",
data: {Email: $("#email").val()},
dataType:"json",
success: function(msg){
if(msg == "OK"){
alert("FREE")
}else{
alert("TAKEN")
}
}
});
});
});
请告诉我我的错误在哪里,或者有更好的方法,给它。请记住,我是ajax和php的新手。非常感谢你!
答案 0 :(得分:0)
我想你想要:
if($result != false && mysql_num_rows($result) > 0) {
echo 'NOT OK';
} else {
echo 'OK';
}
如果这不起作用,请尝试回显查询以确保它符合您的要求。
答案 1 :(得分:0)
一个问题是,在您的Javascript代码中,您在页面加载时设置email
,这恰好是空的。您需要在email
函数内再次设置.blur()
,以便在字段实际模糊时获取值。
$(document).ready(function() {
$("#email").blur(function(){
var email = $("#email").val();
$.ajax({
type: "POST",
url: "unique_check.php",
data: {Email: email},
dataType:"json",
success: function(msg){
if(msg == "OK"){
alert("FREE")
}else{
alert("TAKEN")
}
}
});
});
});