Saltar al contenido

¿Cómo mostrar errores de validación usando redireccionamiento en codeigniter?

Solución:

Encontré la manera de hacerlo. La redirección no conserva los datos que se mostrarán. Usé el siguiente código para resolver el problema:

if($this->form_validation->run() == FALSE)
{
    $this->index();
}

Sé que es un poco tarde, pero este método me funciona de maravilla.

Si está validando su formulario en una función diferente a la que el formulario está cargado, puede enviar su validation_errors() a cualquier pagina que tu redirect() pasando el validation_errors() método para $this->session->set_flashdata() al igual que:

if ($this->form_validation->run() == FALSE) {

    $this->session->set_flashdata('error', validation_errors());

    redirect("https://foroayuda.es/");
}

En las funciones de su controlador donde le gustaría que se recibieran sus errores o mensajes, puede configurarlos en el $data matriz así:

if (!empty($this->session->flashdata('message'))) {

    $data['message'] = $this->session->flashdata('message');
} elseif (!empty($this->session->flashdata('error'))) {

    $data['error'] = $this->session->flashdata('error');
}

En la parte superior de mis vistas suelo incluir:

<?php if (isset($message)) {

    echo '<p class="alert alert-info">'.$message.'</p>';
} elseif (isset($error)) {

    echo '<p class="alert alert-danger"><strong>Error: </strong>'.$error.'</p>';
}?>

El uso de clases de arranque de twitter para formatear los mensajes ayuda a diferenciarlos.

Incluí el message flashdata para que pueda ver cómo sea cual sea el tipo de mensaje o error que desee enviar, puede formatearlos de manera diferente para toda la información, advertencia, mensajes de éxito y error.

Según mi comentario:

function index()
{
    $this->load->library('form_validation');
    $data = array
    (
        'Param' => 'Value'
    );
    if($this->input->post('cellphone', true) !== false)
    {
        if($this->form_validation->run() != FALSE)
        {
            echo '<pre>' . print_r($_POST, true) . '</pre>';
        }
    }
    $this->load->view('index', $data);
}

Primero, debe cambiar su formulario para que apunte a la página actual, es decir current_url() o site_url('controller/index').

Cuando vas al index sin publicar, simplemente omitirá la validación. Al enviar su formulario, ejecutará la validación.

A continuación, puede utilizar el integrado form_error o validation_errors métodos para mostrar los errores dentro de su index vista.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)


Tags :

Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *