Webdesign aus Berlin
Konzept, Gestaltung, Umsetzung
Entwicklung, Hosting und Support
Robert Agthe über das Web, Technologien, Zukunftsvisionen und den typischen Freelancer und Programmierer Alltag. Übrigens, ich bin käuflich.
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.
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;
}
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.
Was halten andere von dem Eintrag
Bitte Einloggen / Registrieren zum kommentieren.
Hier kannst Du Dich Registrieren, Einloggen oder die User Liste anschauen