Как реагировать на удаленную проверку jQuery?
Посмотрел несколько вопросов SO и руководство, но не могу найти его. Когда у меня есть
$( "#myform" ).validate({
rules: {
email: {
required: true,
email: true,
remote: "check-email.php"
}
}
});
Как должен мой check-email.php
реагировать? Я уже пробовала echo "true"
, echo true
, echo {error: true}
, но это не дает правильное сообщение об ошибке.
РЕДАКТИРОВАТЬ
У меня в настоящее время мой php настроен как:
$query = mysql_query("SELECT id FROM users WHERE email='".$_POST['email']."'") or die (mysql_error());
if(mysql_num_rows($query)!=0){
echo json_encode(false);
}else{
echo json_encode(true);
}
Тем не менее, это всегда возвращает истину...
1 ответ
Цитата ОП:
Как должен мой
check-email.php
реагировать? Я уже пробовалаecho "true"
,echo true
,echo {error: true}
, но это не дает правильное сообщение об ошибке.
Это потому что true
не вызовет сообщение об ошибке... это обратный ответ.
true
правильный ответ, когда он действителен (без сообщения об ошибке).Если ответ
false
,null
,undefined
или строка (сообщение об ошибке) поле считается недействительным.
Название цитаты:
Как реагировать на удаленную проверку jQuery?
Вы должны прочитать документацию:
Серверный ресурс вызывается через jQuery.ajax (XMLHttpRequest) и получает пару ключ / значение, соответствующую имени проверенного элемента и его значению в качестве параметра GET. Ответ оценивается как JSON и должен быть
true
для допустимых элементов, и может быть любымfalse
,undefined
или жеnull
для недопустимых элементов, используя сообщение по умолчанию; или строка, например. "Это имя уже занято, попробуйте вместо этого peter123", чтобы отобразить сообщение об ошибке.
РЕДАКТИРОВАТЬ:
В соответствии с правками и комментариями...
ОП использует
$_POST['email']
в своем PHP. Тем не менее, в документации выше указано, чтоremote
метод используетGET
по умолчанию.Если вам нужно специальное сообщение об ошибке, вам нужно следовать приведенной выше документации... так что в вашем PHP вместо возврата
false
... создать сообщение и вернуть его в виде строки.