| ';
$elTemplate .= '#{label} | ';
$elTemplate .= '';
$elTemplate .= '{error} {element} | ';
// Formularinstanz erzeugen
$myForm = new HTML_QuickForm('KreditkartenFormular', 'POST');
// neuer Text fuer Pflichtfelder
$myForm->setRequiredNote('# sind Pflichtfelder');
// Kopfzeile hinzufuegen und neues Template dafuer setzen
$myForm->addElement('header', '', 'Kreditkartendaten');
$myForm->setHeaderTemplate($headerTemplate);
// Textfelder hinzufuegen und neues Template jeweils dafuer setzen
$myForm->addElement('text', 'textKarteninhaber', 'Karteninhaber:');
$myForm->addElement('text', 'textKartennummer', 'Kartenummer:');
$myForm->setElementTemplate($elTemplate, 'textKarteninhaber');
$myForm->setElementTemplate($elTemplate, 'textKartennummer');
// Array fuer Kreditkartentypen
$kartentypen = array( 'visa' => 'VISA', 'master' => 'EuroCard', 'amex' => 'American Express',);
// Dropdownmenue fuer Kreditkartentypen
$myForm->addElement('select', 'selectKartentypen', 'Kartentyp:', $kartentypen);
// Arrays fuer Monate und Jahre
$monate = array ( '01' => 'Januar', '02' => 'Februar', '03' => 'Maerz',
'04' => 'April', '05' => 'Mai', '06' => 'Juni',
'07' => 'Juli', '08' => 'August', '09' => 'September',
'10' => 'Oktober', '11' => 'November','12' => 'Dezember'
);
$jahre = array ( '2003' => '2003', '2004' => '2004', '2005' => '2005' );
// Gruppelemente fuer Monate und Jahre erstellen
$gueltigBis[] = &HTML_QuickForm::createElement('select', 'selectGueltigMonat', NULL, $monate);
$gueltigBis[] = &HTML_QuickForm::createElement('select', 'selectGueltigJahr', NULL, $jahre);
// angelegte Elemente fuer Monate und Jahre Gruppieren
$myForm->addGroup($gueltigBis, 'gueltigBisGruppe', 'Gültig bis:');
// Submitbutton hinzufuegen
$myForm->addElement('submit', 'submitButton','Daten senden');
// Kreditkartennummer haben 16 Stellen
$kartennummer =& $myForm->getElement('textKartennummer');
$kartennummer->setMaxLength(16);
// Validierungsregeln: Die Zweitextfelder muessen gesetzt sein
// Kreditkartennummer darf nur Nummern enthalten und muss 16stellig sein
$myForm->addRule('textKarteninhaber', 'Bitte Karteninhaber angeben', 'required');
$myForm->addRule('textKartennummer', 'Bitte Kartennummer angeben', 'required');
$myForm->addRule('textKartennummer', 'Keine gültige Kartennummer', 'numeric');
$myForm->addRule('textKartennummer', 'Zu wenige Stellen bei Kartennummer', 'minlength', 16);
// Falls Validierung erfolgreich ist, Formular einfrieren
if ( $myForm->validate() )
{
$myForm->removeElement('submitButton');
$myForm->freeze();
}
// Formular anzeigen
$myForm->display();
?>