I have been trying check email availibity using ajax and jquery script as follows,
my controller:
$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); my model:
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; } } my 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_-]+@[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(); } }); my view:
<?php echo form_input('u_email', set_value('u_email'), 'class="form-control" id="email"'); ?> <span id="Loading"><?php echo $message; ?></span> My problem is model always returns TRUE and shows 'email is available' message, how do I check the email availability live
>0still issue is remaining