Get validation errors via jquery ajax and codeigniter

Hi guys, I just want to ask why my ajax request gets the string FALSE (it should receive error messages from the controller).

Here is a fragment of the controller

function ajax_verify(){ $this->form_validation->set_rules('username', '', 'max_length[25]|min_length[4]|trim|required|xss_clean'); $this->form_validation->set_rules('email', '', 'valid_email|required|trim|xss_clean'); if($this->form_validation->run()==FALSE){ $errors = $this->form_validation->error_array(); echo json_encode($this->form_validation->error_array()); }else{ echo "Success!"; } } 

I expanded the library to get an error message. (This works great when checking php)

 class MY_Form_validation extends CI_Form_validation{ function __construct(){ parent::__construct(); } function error_array(){ if(count($this->_error_array)===0){ return FALSE; }else{ return $this->_error_array; } } function get_tae(){ return "TAE!"; } } 

and the last view and jQuery ajax code (Return false instead of errors).

  <!DOCTYPE HTML> <html> <head> <meta charset="utf-8"> <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.7/jquery.js"></script> <title>Title</title> <body> <?php //echo validation_errors('<div class="error">', '</div>');?> <?php echo form_open('ajax/ajax_verify', array('id'=>'my_form'));?> <?php echo form_label('Username'); ?> <?php echo form_input('username', '', array('id' => 'username'));?> <?php echo form_label('Email Address'); ?> <?php echo form_input('email', '', array('id' => 'email')); ?> <?php echo form_submit('submit', 'Submit'); ?> <?php echo form_close();?> <script type="text/javascript"> $(function(){ $('#my_form').submit(function(e){ $.get('ajax_verify', function(data){ $('#contents').append(data); }, 'json') ; e.preventDefault(); }) }); </script> 
+6
source share
2 answers

Try it. It will work fine.

In the controller, add these two methods

  public function CreateStudents() { $this->load->helper('form'); $data['title'] = "Create Students Page"; $data['success'] = ""; $this->load->view('templates/header', $data); $this->load->view('createstudents', $data); $this->load->view('templates/footer', $data); } public function CreateStudentsAjax() { $this->load->helper('form'); $this->load->library('form_validation'); $this->form_validation->set_error_delimiters('', ''); $this->form_validation->set_rules('roll', 'Roll Number', 'required'); $this->form_validation->set_rules('name', 'Name', 'required'); $this->form_validation->set_rules('phone', 'Phone', 'required'); if ($this->form_validation->run()) { $this->welcome_model->InsertStudents(); echo json_encode("Oks"); } else { $data = array( 'roll' => form_error('roll'), 'name' => form_error('name'), 'phone' => form_error('phone') ); echo json_encode($data); } } 

In the View Add Form and DIV named " mesage "

 <div id="message"> </div> <?php echo form_open('welcome/CreateStudentsAjax'); ?> <label for="roll">Student Roll Number</label> <input type="text" id="txtRoll" value="" name="roll"/> <label for="Name">Students Name</label> <input type="text" id="txtName" value="" name="name"/> <label for="Phone">Phone Number</label> <input type="text" id="txtPhone" value="" name="phone"/> <input type="submit" name="submit" value="Insert New Students" /> <?php echo '</form>'; ?> 

Scripts now contain

 <script type="text/javascript"> $(document).ready(function(){ $('form').submit(function(){ //alert('ok'); $.ajax({ url:this.action, type:this.method, data:$(this).serialize(), success:function(data){ var obj = $.parseJSON(data); if(obj['roll']!=null) { $('#message').text(""); $('#message').html(obj['roll']); $('#message').append(obj['name']); $('#message').append(obj['phone']); } else { $('#message').text(""); $('#message').html(obj); } }, erro:function(){ alert("Please Try Again"); } }); return false; }); }); </script> 
+6
source

Its:

 echo json_encode(validation_errors()); 

OR - individually

 $arr = array( 'field_name_one' => form_error('field_name_one'), 'field_name_two' => form_error('field_name_two') ); echo json_encode($arr); 
+3
source

Source: https://habr.com/ru/post/913709/


All Articles