Código PHP:
Ver original
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/> <title>Inicio</title> <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.3/jquery.min.js" type="text/javascript" charset="utf-8"></script> <script type="text/javascript" charset="utf-8"> $(document).ready(function(){ $("#login").click(function(event){ event.preventDefault(); $.ajax({ type: "POST", url: "<?php echo base_url();?>index.php/entradas/check_user", data: "user="+$("#user_name").val()+"&clave="+$("#password").val(), success: function(msg){ if(msg=="true"){ $("#usr_verify").html("<img src='<?php echo base_url();?>imagenes/yes.jpeg' /><h3>Usuario encontrado</h3>"); } else{ $("#usr_verify").html("<img src='<?php echo base_url();?>imagenes/no.jpeg' /><h3>Usuario no encontrado</h3>"); //$("#usr_verify").css({ "background-image": "url('<?php echo base_url();?>imagenes/no.jpeg')" }); } } }); }); }); </script> </head> <body> <a id="login_a" href="#">login</a> <div id="login_form"> <div class="err" id="add_err"></div> <?php echo form_open('entradas/check_user'); ?> <label>User Name:</label> <input type="text" id="user_name" name="user_name" /> <?PHP form_error('userlogin');?> <label>Password:</label> <input type="password" id="password" name="password" /> <?PHP form_error('password');?> <label></label><br/> <input type="submit" id="login" value="Login" /> <input type="button" id="cancel_hide" value="Cancel" /> </div> <div id="shadow" class="popup"></div> <div id="usr_verify" class="verify"></div> </body> </html>
Como podrán ver, tengo dos campos y los datos los estoy enviando por medio de ajax que ya trae jquery, en mi controlador tengo la siguiente función:
Código PHP:
Ver original
public function check_user(){ $usr=$this->input->post('user'); $clv=$this->input->post('clave'); $ExisteUsuarioyPassoword=$this->entradas_model->ValidarUsuario($usr,$clv); if($ExisteUsuarioyPassoword){ if($this->entradas_model->EnabledUser($usr)){ $_SESSION['usuario']=$usr; echo "true"; }else echo "false"; } else{ echo "false"; } }
Bueno, el controlador solamente busca si un usuario existe en una base de datos, por eso lado funciona todo perfecto, cumple con lo que debe, la cuestión es que antes de incorporar jquery, en la función del controlador yo tenía algo parecido a lo siguiente:
Código HTML:
Ver original
$this->form_validation->set_rules('maillogin','e-mail','required|valid_email'); $this->form_validation->set_rules('password','password','required'); //Verificamos si el usuario superó la validación if(($this->form_validation->run()==FALSE)){ //En caso que no, volvemos a presentar la pantalla de login $this->load->view('login'); }
Lo cual me servía para validar que no existieran campos vacíos, antes de enviar el formualrio con sus datos, el problema es que ahora que incorporé la funcionalidad de ajax gracias a jquery, no me funciona, o al menos no sé como hacer para que funcionen los métodos de form_validation, para hacer las validaciones con las herramientas que incorpora CI, No me gusta dejar las validaciones del lado del cliente puesto que no es seguro, siempre me gusta hacerlo del lado del servidor.
Me pueden hacer el favor de indicarme cómo podría hacer las validaciones que necesito?
Desde ya muchas gracias