2015-07-28 2 views
0

Я пытался проверить электронную почту availibity с помощью Ajax и JQuery скрипт следующим образом,Codeigniter наличие проверка Аякса электронной почты

мой контроллер:

$get_result = $this->user->check_email_availablity();  
     if($get_result == FALSE) { 
      $validate['message'] = '<p>Email is not available.</p>'; 
     } else { 
      $validate['message'] = '<p>Email is available.</p>'; 
     }    
     $this->load->view('user/signup', $validate); 

моя модель:

function check_email_availablity() { 
     $email = $this->input->post('u_email'); 
     $query = $this->db->query('SELECT u_email FROM tbl_users where u_email = "'.$email.'"');  
     if($query->num_rows() === 1) { 
      return FALSE; 
     } else { 
      return TRUE; 
     } 
    } 

мои JS:

$(document).ready(function() {  
     /// make loader hidden in start  
     $('#Loading').hide();    
     $('#email').blur(function(){ 
     var a = $("#email").val(); 
     var filter = /^[a-zA-Z0-9]+[a-zA-Z0-9_.-]+[a-zA-Z0-9_-][email protected][a-zA-Z0-9]+[a-zA-Z0-9.-]+[a-zA-Z0-9]+.[a-z]{2,4}$/;   
     // check if email is valid 
     if(filter.test(a)){     
     // show loader  
     $('#Loading').show();  
     $.post("<?php echo base_url()?>main/signup", {  
     email: $('#email').val()  
     }, 
     function(response){       
     //#emailInfo is a span which will show you message  
     $('#Loading').hide();  
     setTimeout("finishAjax('Loading', '"+escape(response)+"')", 400);  
     });  
     return false; 
     } 
     }); 
     function finishAjax(id, response){ 
     $('#'+id).html(unescape(response)); 
     $('#'+id).fadeIn(); 
     } 
    }); 

мой взгляд:

<?php echo form_input('u_email', set_value('u_email'), 'class="form-control" id="email"'); ?> 
       <span id="Loading"><?php echo $message; ?></span> 

Моя проблема заключается в модели всегда возвращает TRUE, и показывает «электронная почта доступна» сообщение, как я могу проверить наличие электронного живого

+0

Да, я тоже проверил этот путь и '> 0' остался –

+1

echo $ query-> num_rows() и проверить результат .. это его возврат 1? – shafiq

+0

Нет его возврата 0 после нажатия кнопки отправки только возврат 1 –

ответ

1

В вашей модели изменить, если условие в строке запроса:

function check_email_availablity() { 
     $email = $this->input->post('u_email'); 
     $query = $this->db->query('SELECT u_email FROM tbl_users where u_email = "'.$email.'"');  
     if($query->num_rows() > 0) { 
      return FALSE; 
     } else { 
      return TRUE; 
     } 
    } 

И в контроллере:

 $get_result = $this->user->check_email_availablity();  
     if(!$get_result) //if email already exist in your database 
     { 
      $validate['message'] = '<p>Email is not available.</p>'; 
     } else { 
      $validate['message'] = '<p>Email is available.</p>'; 
     }    
     $this->load->view('user/signup', $validate); 
+0

нет пока его показ только «Электронная почта доступна» –

+0

вы проверили, действительно ли письмо действительно существует в вашей базе данных? – Diwas

+0

Да, я проверил существующие письма и не существующие –