Witam!

Niedawno zacząłem zabawę w CI i obecnie chciałbym zrobić walidację formularza przez form_validation w połączeniu z JS. Obecnie mój kod wygląda tak:

CONTROLLER:

  1. ...
  2. public function add_wolont()
  3. {
  4. // template...
  5.  
  6. $this->load->model( 'Wolontariusze' );
  7.  
  8. if ( !empty( $_POST ) )
  9. {
  10.  
  11. $this->load->library('form_validation');
  12.  
  13. $this->form_validation->set_rules('imie_wolont', 'Imie wolontariusza', 'trim|required');
  14. $this->form_validation->set_rules('d_imie_wolont', 'Drugie mie wolontariusza', 'trim|required');
  15. // etc.
  16.  
  17. if ($this->form_validation->run() === FALSE) {
  18.  
  19. echo json_encode(array('st' => 0,'msg' => 'BŁĄD: <br>' . validation_errors()));
  20.  
  21. } else {
  22. $dodaj_wolont = array(
  23. 'imie' => $this->input->post( 'imie_wolont' ),
  24. 'drugie_imie' => $this->input->post( 'd_imie_wolont' ),
  25. // etc.
  26. );
  27.  
  28. $this->Wolontariusze->dodaj( 'wolontariusze' , $dodaj_wolont );
  29. $str = "DODANO!";
  30. echo json_encode(array('st' => 1, 'msg' => $str));
  31. }
  32.  
  33. }
  34.  
  35.  
  36. }



VIEW:

  1. <div id="error"></div>
  2. <?php echo form_open('panel/add_wolont', array('id'=>'dodaj_wolont')) ?>
  3.  
  4. <label>Imie</label>
  5. <input type="text" name="imie_wolont">
  6.  
  7. <label>Drugie imie</label>
  8. <input type="text" name="d_imie_wolont">
  9.  
  10. <label>Nazwisko</label>
  11. <input type="text" name="nazwisko_wolont">
  12.  
  13.  
  14. <input type="submit" value="Dodaj">
  15. <?php echo form_close(); ?>



java script:
  1. $(function() {
  2. $('#dodaj_wolont').submit(function() {
  3. $.post($('#dodaj_wolont').attr('action'),$('#dodaj_wolont').serialize(),function(json) {
  4. if ( json.st == 0 ) {
  5. alert(json.msg);
  6. } else {
  7. alert(json.msg);
  8. }
  9. }, 'json');
  10. return false;
  11. });
  12. });


I na czym polega problem. Normalnie dane są przekazywane przez JS do controllera, w konsoli zwraca wszystko ok, ale nie wyświetla alertów z potwierdzeniem (tak jakby instr warunkowa nie działała)

Wie ktoś może co jest nie tak? Ew. jakiś inny sposób na osiągnięcie takiego efektu.

Pozdrawiam