Я пытаюсь начать работу с JSON и jQuery. Я вообще не программист на JavaScript, поэтому я смешиваю и сопоставляю и имею довольно много проблем, чтобы мой код работал. Я думал, что кто-то сможет мне помочь.jQuery/JSON/CodeIgniter - Проверка формы
У меня есть модель, которая использует следующий PHP код, чтобы проверить, если адрес электронной почты зарегистрирован в системе:
function is_email_available($email) {
$this->db->select('1', FALSE);
$this->db->where('LOWER(email)=', strtolower($email));
$this->db->or_where('LOWER(new_email)=', strtolower($email));
$query = $this->db->get($this->table_name);
return $query->num_rows() == 0;
}
Приведенный выше код вызывается моим контроллером АЯКС, используя следующую команду, и если он зарегистрирован возвращает JSON истинным или ложным
function email_availability() {
// Check to see if the username is available or taken
if ($this->users->is_email_available($this->input->post('emailaddress'))) {
echo json_encode(TRUE);
} else {
echo json_encode(FALSE);
}
}
выше вызывается из моего файла JS с помощью следующей JQuery, но не кажется, что это будет работать на всех.
if(iEmail.val()) {
$.ajax({
url: '/ajax/email_availability',
data: 'emailaddress=' + iEmail.val(),
dataType: 'json',
type: 'post',
success: function(msg) {
iEmail.next('.error').text('This Email Address is not registered');
error = true;
}
});
}
Я думаю, что мой jQuery полностью выключен, но не может понять это. Любая помощь будет принята с благодарностью.
где ошибка? в части запроса или в ответе? проверьте в firebug, если запрос на вашу php-страницу фактически отправлен – gpasci
@gpasci - Его просто вернулось «ИСТИНА», если введенный адрес электронной почты не находится в базе данных. – BigJobbies
Вам не нужно использовать json_encode (true). вместо этого вы можете просто эхом 1 или 0. Другое дело, вы получаете какую-либо ошибку? Где? Вы пробовали отлаживать свой код с помощью firebug или инструментов разработчика от chrome? –