javascript - Codeigniter ajax form validation error -


i have researched code make validation ajax.

my controller is:

public function create(){       $data = array('success' => false, 'messages' => array());      $this->form_validation->set_rules('province','province name','trim|required|max_length[30]|callback_if_exist');     $this->form_validation->set_error_delimiters('<p class="text-danger"','</p>');      if($this->form_validation->run($this)){          $data['success'] = true;     }else{         foreach ($_post $key => $value) {             # code...             $data['messages']['key'] = form_error($key);         }     }      echo json_encode($data); } 

and javascript is:

<script>     $('#form-user').submit(function(e){         e.preventdefault();          var me = $(this);          // perform ajax         $.ajax({             url: me.attr('action'),             type: 'post',             data: me.serialize(),             datatype: 'json',             success: function(response){                 if (response.success == true){                     alert('success');                 }else{                     $.each(response.messages, function(key, value) {                         var element = $('#' + key);                          element.closest('div.form-group')                         .removeclass('has-error')                         .addclass(value.length > 0 ? 'has-error' : 'has-success')                         .find('.text-danger')                         .remove();                          element.after(value)                      });                 }             }          });       });   </script> 

at first if else statement was:

            if (response.success == true){                 alert('success');             }else{                alert('failed');                  }); 

but when put codes:

  $.each(response.messages, function(key, value) {                         var element = $('#' + key);                      element.closest('div.form-group')                     .removeclass('has-error')                     .addclass(value.length > 0 ? 'has-error' : 'has-success')                     .find('.text-danger')                     .remove();                      element.after(value) 

the button doesn't work anymore if validation fails.

you hard coding string 'key' in php loop want variable $key

change

$data['messages']['key'] 

to

$data['messages'][$key] 

Comments

Popular posts from this blog

wordpress - (T_ENDFOREACH) php error -

Export Excel workseet into txt file using vba - (text and numbers with formulas) -

Using django-mptt to get only the categories that have items -