CodeIgniter‎ > ‎

Fehler von Form Validation als Liste ausgeben


Möchte man die Fehler einer Formularüberprüfung (Library “Form Validation”) als HTML-Liste (<ul>...</ul>) ausgeben, kann man dies nicht über die von der Library zur Verfügung gestellten Funktion validation_errors() realisieren. Um dies zu erreichen muss man zunächst die Tennzeichen leeren, alle Fehler über die Funktion form_error() in ein eigenes PHP-Array schreiben, dieses von leeren Einträgen bereinigen und kann dieses dann im View ausgeben.

Controller

// Trennzeichen leeren
$this->form_validation->set_error_delimiters('', '');

// Fehlermeldungen in ein temporäres PHP-Array schreiben
$arr_errors = (array) array(
    (string) form_error('name'),
    (string) form_error('email'),
    (string) form_error('url'),
    (string) form_error('text')
);

// Leeren Einträge aus dem temporären PHP-Array entfernen
$arr_data['arr_errors'] = (array) array();
foreach ( $arr_errors as $str_error ) {
    if ( '' != $str_error ) {
        $arr_data['arr_errors'][] = (string) $str_error;
    }
}

// View aufrufen und Daten an dieses übergeben
$this->load->view('my_view', $arr_data);

View

// Ausgabe der Fehler als HTML-Liste
if ( isset($arr_errors) && is_array($arr_errors) && 0 < count($arr_errors) ) {
    echo '<ul>';
    foreach ( $arr_errors as $str_error ) {
        echo '<li>', $str_error, '</li>';
    }
    echo '</ul>';
}