Webdesign aus Berlin
Konzept, Gestaltung, Umsetzung
Entwicklung, Hosting und Support

Form Library für CodeIgniter

CISSFormung ist eine offene Library für das PHP Framework CodeIgniter die sich um das Erstellen und Auswerten von XHTML Formularen mit Datenbankanbindung kümmert. Praktisch gesehen kann man mit einem Array und einer "if"-Abfrage die Formularerstellung, Validierung und MySQL Datenbankeintragung innerhalb eines Controllers regeln.

Vor HTML Formularen hat es mir irgendwie schon immer gegraust. Irgendwie fängt man jedes mal bei Null an und irgendwie vergisst, oder schreibt man irgendeinen Input Namen falsch. Es war mir so lästig, dass ich mir eine CodeIgniter Library geschrieben habe, die das übernimmt.

Funktionsweise

Das Kernstück dabei ist ein Array in dem alle gewünschten Input Felder, die zu benutzende Datenbank Tabelle usw. aufgeführt werden. Die Namen der Input Felder sollten dabei mit den Datenbank Spalten übereinstimmen, da diese im Falle eines 'ändern'-Formulares schon mit diesen gefüllt werden. Desweiteren kann man diesen Feldern ein Array mit Optionen mitgeben, um den Label Text oder die Validationsparameter zu bestimmen. Meistens sieht das ganze im Controller dann so aus:

$data = array(
    'table' =>'books', // MySQL Tabelle
    'id' => $this->uri->segment(4), // id für den Datensatz
    'segment'=>'admin/books/modify', // URL zu diesem Controller
    'fields' => array( // Input Felder
        'name'=>array( // Name muss MySQL Coloumn Name entsprechen
            'desc'=>'Buchname', // Labeltext
            'value'=>'', // Schon vorhandener Text
            'type'=>'text', // text, dropdown, upload etc.
            'rules'=>'required' // CI Form Validation Rules
        ),
        'preis'=>array(
            'desc'=>'Wieviel kostet das Buch?',
            'value'=>'',
            'type'=>'text',
            'rules'=>'required|min_length[3]'
        ),
        'art'=>array(
            'desc'=>'Buchart?',
            'value'=>'',
            'type'=>'dropdown',
            'rules'=>'required',
            'options'=>array( // Wenn dropdown -> Options Array
                '0'=>'Dickes Buch',
                '1'=>'dünnes Buch'
            )
        ),
    ),
);

Das ganze Array wird dann an meine Klasse übergeben. Per "if"-Abfrage kann man nun prüfen ob das Formular korrekt ist oder nicht. So kann man entscheiden ob die Daten in einer Datenbank gespeichert werden, oder per E-Mail versendet werden. Das sieht dann in etwa so aus:

// cissFormung laden
$this->load->library('Formung');

// Daten Array an Klasse übergeben
$this->formung->data = $data;

// Prüfen ob Form Fehler verursacht hat
if($this->formung->success())
{
    // Keine Fehler -> Daten weiterverarbeiten
    $this->book_model->safe($this->formung->return);
    redirect('startseite');
}
else
{
    // Fehler oder Aufruf ohne POST?
    // -> Formular ausgeben
    echo $this->formung->output;
}

Features

  • Unterstützt mehrere Input Tags (Dropdown,Upload,Text,Radio)
  • Validation mit CI Validation Library
  • Erstellung von konformen, stylebaren XHTML
  • Ausgabe von Fehlermeldungen direkt am betreffenden Inputfeld
  • Dateiupload (beta)
  • Man kann selbst entscheiden wie Formulardaten weiterverarbeitet werden

Download

Ich hab es endlich dank Peters gitHub Einführung Geschafft mich dort zu registrieren. Herunterladen kann man die CISSFormung Library also genau dort.

Dieser Eintrag wurde von polarity am 04.11. 2009 - 00:12 Uhr verfasst.


Get Social


Kommentare

Was halten andere von dem Eintrag

Bitte Einloggen / Registrieren zum kommentieren.

Signin Twitter

Wats going ab in the blog?

Mehr Artikel aus dem Blog, gibt es im Blog. Wer hätte das gedacht? Am besten RSS Feed abonnieren!

Cheat Sheets zum Ausdrucken D
Blog: App URL Schemes auf iOS und Android - Warum nutzt sie keiner?
App URL-Schemes dienen dazu Anwendungen auf Mobilgeräten, über simple URLs die man aus dem Browser kennt, zu Steuern. Leider werden sie viel zu selten eingesetzt.
Cheat Sheets zum Ausdrucken D
Forum: HTML5 Games die auf den Canvas Tag basieren
Wollte hier mal den Platz nutzen um HTML5 Games zu sammeln, die auf den Canvas Tag von HTML5 basieren. Wer möchte ist natürlich Herzlich eingeladen beizutragen. Biolab Desaster Tolle Wurst. Astreines Parallax Scrolling und ausgebuffter Level Editor. Wann wird die impact.js Engine endlich released? Biolab Desaster spielen Canvas Rider Wie
Cheat Sheets zum Ausdrucken D
Blog: HTML5 Gaming, Javascript Game Engines, Working Draft Podcast und Ich
Ich bastel ja gerade an einem kleinen Spiel (Lena!). Genauer an einem Jump and Run. Um mit der Zeit zu gehen, wird das Game per HTML5 und Javascript realisiert. Das blieb natürlich nicht lange unbemerkt und ich wurde von Peter zum Working Draft Podcast diesbezüglich eingeladen.

"{s}criptshit" konzeptioniert und gestaltet Webseiten und setzt diese nach modernen Standards um. Sie finden hier Internetationen über unsere Leistungen und Wissenswertes über Webdesign und das Internet.

{s}criptshit Matternstraße 14
10249 Berlin
030 202/754/85
✉ robert[]scriptshit.de

Wir benutzen

Strikte Seo URLs mit MODx CMS D
MODx
Wir benutzen das kleine, schlanke und quell-offene Content Management System.
Strikte Seo URLs mit MODx CMS D
Blueprint CSS
Das CSS Framework hilft effizient und Browsersicher Webseiten umzusetzen.
Strikte Seo URLs mit MODx CMS D
jQuery
Das Javascript Framwork hilft uns bei userfreundlich bedienbaren Webseiten
Strikte Seo URLs mit MODx CMS D
CodeIgniter
Ermöglicht uns schnell und sicher PHP Anwendungen zu realisieren.

Hier kannst Du Dich Registrieren, Einloggen oder die User Liste anschauen