Mailinglisten-Archive |
Norbert wrote: > wie loest man eine Datumseingabe ohne validieren zu muessen? > ich will vor allem Tipp- und Formatfehler ausschliessen. > Mir faellt da nur JavaScript ein ... eine Lösung, aber keine schöne! :-( Möglich wären etwa Dropdowns für Jahr, Monat und Tag, schützt aber auch nicht davor dass jemand den 31. Februar zusammenklickt. IMHO die beste Löung ist eine Formularklasse, die Felder validiert, man also keine Arbeit damit hat. Ein Blick wert ist PEAR::HTML_QUICKFORM oder meine Lösung formWizard: http://pear.php.net/package/HTML_QuickForm http://formwizard.andreas-demmer.de Vorteile: - objektorientiertes Erstellen von Formularen - automatische Validierung und Wiedervorlage Nachteile: - mangelnde Flexibilität im Layout Schau Dir mal mein Beispiel an: http://formwizard.andreas-demmer.de/logik/beispiel/?show_source=1 ein Datumsfeld liesse sich etwa so lösen: $form = new formWizard(); $element = new formTextField($form, 'datum', 10, 10); $element->setDescription('Datum'); $element->setRequired(TRUE); $element->setCustomValidation($validation); $element->setErrorMessage('keine valides Datum'); $form->addElement($element); $validation kann hierbei entweder ein regulärer Ausdruck sein oder ein Callback auf eine Prüffunktion die einen boolschen Wert zurückliefert. Zum Abschluss dann: $renderedForm = $form->fetch(); if($form->isSubmitted() && !$form->errorOccured()) { // Erfolg } else { echo $renderedForm; // Wiedervorlage } Gruss, Andreas -- http://www.andreas-demmer.de
php::bar PHP Wiki - Listenarchive