I created a simple ajax request to check email availability on codeigniter. but I get every error. and donβt know how to resolve it. below is my js script footer (after jquery and other external scripts).
<script> $(document).ready(function() { $("#loading").hide(); $("#email").blur(function() { var email_val = $("#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]+.[az]{2,4}$/; if (filter.test(email_val)) { // show loader $('#loading').show(); jQuery.ajax({ type: "POST", url: "<?php echo site_url()?>users/check_email_ajax", dataType: 'json', data: { '<?php echo $this->security->get_csrf_token_name(); ?>' : '<?php echo $this->security->get_csrf_hash(); ?>', 'email': 'email_val' }, success: function (response) { if(response){ $('#loading').hide(); console.log(response.message); $('#msg').html(response.message) $('#msg').show().delay(10000).fadeOut(); } }, error: function(error){ $('#loading').hide(); console.log("There is some errors on server : " + error.error); } }) } }); });
and this is my User Controller function for checking email in db
public function check_email_ajax(){ // allow only Ajax request if($this->input->is_ajax_request()) { // grab the email value from the post variable. $email = $this->input->post('email'); // check in database - table name : users , Field name in the table : email if(!$this->form_validation->is_unique($email, 'users.email')) { // set the json object as output $this->output->set_content_type('application/json')->set_output(json_encode(array('message' => 'The email is already taken, choose another one'))); }else{ $this->output->set_content_type('application/json')->set_output(json_encode(array('message' => 'you can use this email'))); } } }
and in the registration form I have this email input field:
<div class="col-sm-5"> <input type="email" id="email" name="email" class="form-control"> <span id="loading"><img src="<?php echo base_url(); ?>ajax-loader.gif" alt="Ajax Indicator" /></span> <div id="msg"></div> </div>
but now every time I change the input value.
There is some errors on server : function (){if(c){var a=c.length;m(arguments),i?k=c.length:e&&e!==!0&&(j=a,n(e[0],e[1]))}return this}
Does anyone know how to fix this?
javascript jquery ajax php codeigniter
Ali Qorbani
source share