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:...
public function add_wolont()
{
// template...
$this->load->model( 'Wolontariusze' );
{
$this->load->library('form_validation');
$this->form_validation->set_rules('imie_wolont', 'Imie wolontariusza', 'trim|required');
$this->form_validation->set_rules('d_imie_wolont', 'Drugie mie wolontariusza', 'trim|required');
// etc.
if ($this->form_validation->run() === FALSE) {
echo json_encode
(array('st' => 0,'msg' => 'BŁĄD: <br>' . validation_errors
()));
} else {
'imie' => $this->input->post( 'imie_wolont' ),
'drugie_imie' => $this->input->post( 'd_imie_wolont' ),
// etc.
);
$this->Wolontariusze->dodaj( 'wolontariusze' , $dodaj_wolont );
$str = "DODANO!";
echo json_encode
(array('st' => 1, 'msg' => $str)); }
}
}
VIEW: <?php echo form_open('panel/add_wolont', array('id'=>'dodaj_wolont')) ?>
<input type="text" name="imie_wolont">
<input type="text" name="d_imie_wolont">
<input type="text" name="nazwisko_wolont">
<input type="submit" value="Dodaj"> <?php echo form_close(); ?>
java script: $(function() {
$('#dodaj_wolont').submit(function() {
$.post($('#dodaj_wolont').attr('action'),$('#dodaj_wolont').serialize(),function(json) {
if ( json.st == 0 ) {
alert(json.msg);
} else {
alert(json.msg);
}
}, 'json');
return false;
});
});
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