У меня есть форма с полем электронной почты, которое я хочу проверить в базе данных MySQL на keyup(). Я также пробовал это с полем имени пользователя и не имел никаких проблем с этим. Но по какой-то причине значение электронной почты не отправляется в php-функцию или ничего не возвращает от контроллера в тот момент, когда вы наKeyUp() символ @. в электронном письме есть @, расположенное где-то посреди адреса электронной почты, например, [email protected], сообщения «piet» до тех пор, пока вы не нажмете сдвиг 2 (@), тогда все сходит с ума. вот код:У сообщения JQuery есть проблемы с символом @
$("#emailField").keyup(function(){
var email = $("#emailField").val();
$.post("<?php echo URL_CHECK_EMAIL_EXISTS; ?>" + email, function(data) {
alert(email);
});
});
Вот функция управления, даже если я сказал, что все хорошо с нормальными строками произведения, такие как имя пользователя.
public function check_email($email){
$exists = $this->User_Model->if_email_exists($email);
if($exists){
echo "true";
} else {
echo "false";
}
}
Вот модель, которая работает отлично:
public function if_email_exists($email){
$this->db
->from('users')
->where('email', $email)
->limit(1);
$query = $this->db->get();
if ($query->num_rows() > 0){
return true;
} else {
return false;
}
}
Я хотел бы предложить, чтобы не сделать DB звонков на событиях OnKeyUp, если его абсолютно .. Слишком необходимый много DB не вызывает разве что хорошо;) –
^^^Это! Кроме того, проверьте документацию о том, как отправлять данные с помощью почтового вызова ajax. Вы не указываете его в URL. http://api.jquery.com/jQuery.post/ – Archer
MVC является причиной того, что значение находится в URL-адресе –