如何使用ajax从数据库验证唯一的电子邮件?没有输出

时间:2016-12-31 09:34:14

标签: jquery ajax

我想在提交表单之前验证用户名和电子邮件是否唯一。但它不起作用。这是我的代码

形式:

<form action="<?php echo htmlspecialchars($_SERVER["PHP_SELF"]);?>" method="post" onsubmit="return checkall();">
<div class="form-group">
<label>Email</label>
<input type="email" class="form-control" name="email" id="UserEmail" required=""  onkeyup="checkemail();"><span id="email_status"></span>
</div>            
<div class="form-group">
<label>Enter Username</label>
<input type="text" class="form-control" name="username" id="UserName" required=""  onkeyup="checkname();"><span id="name_status"></span>
</div> 
    ...

checkdata.php

<?php

$host = 'localhost';
$user = 'root';
$pass = '';

mysql_connect($host, $user, $pass);

mysql_select_db('test');

if(isset($_POST['user_name']))
{
 $name=$_POST['user_name'];

 $checkdata=" SELECT username FROM register WHERE username='$name' ";

 $query=mysql_query($checkdata);

 if(mysql_num_rows($query)>0)
 {
  echo "User Name Already Exist";
 }
 else
 {
  echo "OK";
 }
 exit();
}

if(isset($_POST['user_email']))
{
 $emailId=$_POST['user_email'];

 $checkdata=" SELECT email FROM register WHERE email='$emailId' ";

 $query=mysql_query($checkdata);

 if(mysql_num_rows($query)>0)
 {
  echo "Email Already Exist";
 }
 else
 {
  echo "OK";
 }
 exit();
}
?>

ajax代码

<script type="text/javascript">

function checkname()
{
 var name=document.getElementById( "UserName" ).value;

 if(name)
 {
  $.ajax({
  type: 'post',
  url: 'checkdata.php',
  data: {
   user_name:name,
  },
  success: function (response) {
   $( '#name_status' ).html(response);
   if(response=="OK") 
   {
    <?php $email = $_POST["email"];  ?>
    return true;  
   }
   else
   {
    return false; 
   }
  }
  });
 }
 else
 {
  $( '#name_status' ).html("");
  return false;
 }
}

function checkemail()
{
 var email=document.getElementById( "UserEmail" ).value;

 if(email)
 {
  $.ajax({
  type: 'post',
  url: 'checkdata.php',
  data: {
   user_email:email,
  },
  success: function (response) {
   $( '#email_status' ).html(response);
   if(response=="OK") 
   {
    $username = $_POST["username"]; 
    return true;  
   }
   else
   {
    return false; 
   }
  }
  });
 }
 else
 {
  $( '#email_status' ).html("");
  return false;
 }
}

function checkall()
{
 var namehtml=document.getElementById("name_status").innerHTML;
 var emailhtml=document.getElementById("email_status").innerHTML;

 if((namehtml && emailhtml)=="OK")
 {
  return true;
 }
 else
 {
  return false;
 }
}

</script>

我不知道自己犯了什么错误。它没有在垃圾邮件标签中显示任何内容。

感谢。

0 个答案:

没有答案