phpbar.de logo

Mailinglisten-Archive

[php] Datumseingabe ohne validieren

[php] Datumseingabe ohne validieren

Andreas Demmer php at andreas-demmer.de
Don Aug 5 12:55:05 CEST 2004


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