我想在提交表单之前验证用户名和电子邮件是否唯一。但它不起作用。这是我的代码
形式:
<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>
我不知道自己犯了什么错误。它没有在垃圾邮件标签中显示任何内容。
感谢。