2013-03-06 3 views
0

Я пытаюсь начать работу с 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 полностью выключен, но не может понять это. Любая помощь будет принята с благодарностью.

+0

где ошибка? в части запроса или в ответе? проверьте в firebug, если запрос на вашу php-страницу фактически отправлен – gpasci

+0

@gpasci - Его просто вернулось «ИСТИНА», если введенный адрес электронной почты не находится в базе данных. – BigJobbies

+0

Вам не нужно использовать json_encode (true). вместо этого вы можете просто эхом 1 или 0. Другое дело, вы получаете какую-либо ошибку? Где? Вы пробовали отлаживать свой код с помощью firebug или инструментов разработчика от chrome? –

ответ

1

Вы действительно не проверяли, был ли результат верным или ложным.

 success: function(msg) { 
      if (msg){ 
       //email is available 
      } 
      else{ 
       //email is not available 
      } 
     }