PEAR Quickform - Datum vorbelegen

Geschrieben am Oktober9. Oktober 2006 in PHP & mySQL von Martin

Im Laufe der Zeit habe ich natürlich auch mit diversen PEAR PHP CLasses gearbeitet. Eine sehr nützliche PEAR Class ist Quickorm, sie ermöglicht die simple Erzeugung und Validierung von Formularen in Webseiten.

Da hier aber auch öffters die Frage aufkommt, wie man z.B. ein Datumsfeld mit einem Datum vorbelegen kann, ist hier also mal ein Beispiel wie das geht:

$datum=”10-05-70″; # tag-monat-jahr
$xy= explode(”-”, $datum);
$datumd=array_shift($xy);
$datumm=array_shift($xy);
$datumy=array_shift($xy);
$formdefaults=array(
‘geburtsdatum’   =>   array(’d'=>$datumd,’m'=>$datumm,’Y'=>$datumy)
);

$form->setDefaults($formdefaults);

Wenn man es einmal verstanden hat, ist es recht simpel, und kann den eigenen Bedürfnissen angepasst werden.

Hier auch nochmal ein paar weitere Funktionen die ich im verbindung mit einem Datumsfeld bei Quickform gelegentlich einsetze:

#
# angegebenes Datum existiert
#

function datumOK ($a){
return checkdate($a['m'],$a['d'],$a['Y']);
}

#
# user ist min. 18 Jahre alt
#

function is18($a){
$heute = getdate();
return (($heute['year'] > ($a['Y'] + 18))|| (($heute['year'] == ($a['Y'] + 18)) && ($heute['mon'] > $a['m']))||(($heute['year'] == ($a['Y'] + 18)) && ($heute['mon'] == $a['m']) && ($heute['mday'] > ($a['d']-1))));

}

und so werden die dann als regeln bei der Validierung der Formulareingaben eingesetzt:

define (’FORMGEN_VALIDATE’, “server”);  # Formulareingaben erst auf Server prüfbar

$form->registerRule(’is18′,’callback’,'is18′);
$form->registerRule(’datumOK’,'callback’,'datumOK’);

$form->addRule(’geburtsdatum’, ‘ungültiges Datum’, ‘datumOK’, null, FORMGEN_VALIDATE);
$form->addRule(’geburtsdatum’, ‘Mindestalter 18 Jahre’, ‘is18′, null, FORMGEN_VALIDATE);

je nach verwendetem Datumsformat müssen die Funktionen ggf. ein klein wenig angepasst werden.

2 Kommentare zu 'PEAR Quickform - Datum vorbelegen'

Kommentare als RSS or TrackBack to 'PEAR Quickform - Datum vorbelegen'.

  1. # Kommentar von Heohni
    am 5. Juni 2008 um 12:53 Uhr.

    Hallo Martin,

    ich suche nach einer Möglichkeit dem User 2 Datumsangaben auswählen zu lassen.

    Urlaub: von - bis

    Diese Daten müssen dann auch überprüft werden.

    Gibts es dazu schon etwas fertiges?

  2. # Pingback von PEAR QuickForm - Formular mit Validierung (PHP) | SteviesWebsite Blog
    am 21. Mai 2009 um 14:40 Uhr.

    [...] PEAR Quickform - Datum vorbelegen (martins-meinung.de) [...]

Kommentar schreiben