Я использую плагин 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) из ответов на темы, подобные этой. Кто-нибудь сможет указать пальцем на то, что здесь происходит?
json_econde(true)
просто возвращает строку"true"
. - person km6zla   schedule 22.05.2013==1
не сработает, поэтому используйте>0
- person km6zla   schedule 22.05.2013