我正在使用 JQuery Bassistance Form Validation 插件,一切正常,直到我尝试检查 MySQL 数据库中的现有电子邮件。
这是我的代码:
$(document).ready(function(){
$('#signup').validate({
rules: {
email: {
required: true,
email: true,
remote: {
type: 'POST',
url: "email_check.php"
}//end remote
}//end email
},//end rules
messages: {
email: {
remote: "Email already in use."
}//end email
} //end messages
}); //end validate
}); //end ready
这是我的 email_check.php 文件:
<? php
$dbc = mysqli_connect('localhost', 'root', '', 'step1_db')
or die('Error connecting to the database');
$email = $_GET['email'];
$check_email = "SELECT * FROM users WHERE email = '$email'";
$existing = mysqli_query($dbc, $check_email);
$num_rows = $existing->num_rows;
if ($num_rows == 1){
echo json_encode(FALSE);
}else{
echo json_encode(TRUE);
}
mysqli_close($dbc);
?>
所以现在,如果我尝试将数据库中存在的电子邮件输入到我的表单中,我会收到无效电子邮件的默认错误消息,而不是“电子邮件已在使用中”。即使我输入了数据库中不存在的有效电子邮件,错误消息也不会消失。
我猜问题出在我的 php 文件中……我试过使用“return true”和“return false”,但它们也没有用。我将我的代码更改为 echo json_encode(FALSE) 从与此类似主题的答案中。有没有人能够指出这里发生了什么?