martes, 21 de enero de 2014

Validaciones De Formularios en Codeigniter

Validaciones De Formularios en Codeigniter



Las validaciones son un paso importante en el diseño de aplicaciones web. Codeigniter nos ayuda bastante al momento de realizar validaciones. A continuación se explicara un ejemplo de como usar estas.

Primero que nada, se deberá cargar la libreria form_validation ya sea en el archivo de configuración autload.php con la siguiente instrucción:

$autoload['libraries'] = array('form_validation');

Con esto ya podemos realizar lo siguiente en el constructor del controlador:

function __construct() {
        parent::__construct();
        $this->load->library('form_validation');
    }

Con esto ya tenemos activada la librería para poder utilizarla dentro de el controlador. Ahora si ya podemos establecer las reglas de validación. 

Se procedera a hacer un ejemplo practico de estas reglas:

 public function insert() {
      $registro = $this->input->post();
     $this->form_validation->set_rules('usuario','Usuario','required||is_unique[cuenta.login]');
     $this->form_validation->set_rules('contrasena','Contraseña','required|matches[contrasena1]');
     $this->form_validation->set_rules('nombres','Nombres y Apellidos','required|min_length[7]');
     $this->form_validation->set_rules('email', 'Email', 'trim|valid_email');
        if ($this->form_validation->run() == FALSE) {
            $this->create();
        } else {
            redirect('perfil/index');
        }
    }

En el siguiente ejemplo se establecen diferentes reglas de validación, como por ejemplo el campo usuario es requerido y debe coincidir con el campo login de la base de datos. Los atributos min_length y max_length permiten establecer el mínimo y máximo que puede tener un campo y sus valores entre [] se refieren a la cantidad de caracteres permitida, y valid_email permite ingresar solo email validos.

El siguiente paso es definir los mensajes que aparecerán en caso de que se ejecuten estas validaciones, esto se lo puede colocar en el constructor de el controlador:

function __construct() {
        parent::__construct();
        $this->load->library('form_validation');
        $this->form_validation->set_message('required', 'Debe introducir el campo %s');
   $this->form_validation->set_message('min_length', 'El campo %s debe ser de al menos %s carácteres');
      $this->form_validation->set_message('valid_email','Debe introducir un correo válido en el campo email');
       $this->form_validation->set_message('is_unique','Este USUARIO ya exite.');
$this->form_validation->set_message('matches','Las contraseñas ingresada no coinciden, por favor verfique que sean exactas');
    }

y por ultimo para poder visualizar los mensajes de validación, hacemos lo siguiente en el formulario:

echo validation_errors();

esto nos mostrar un mensaje de validación como el siguiente:


No hay comentarios:

Publicar un comentario