Umfangreiches Bestellformular
Veröffentlichungsdatum: 05. August 2010
Änderungsdatum: 07. August 2026
formular radiobutton checkbox individuell
Anwendungsbeispiel: Formular mit allen verfügbaren Elementen
Umfangreiches Bestellformular
Beispiel: Umfangreiches Bestellformular
Quelltext
<?php
$formular = new wForm();
$formular->addElement('radio', 'salutation', 'Anrede*', array('attributes' => array('class' => 'wglRadioFloat'), 'options' => array('Herr' => 'Herr', 'Frau' => 'Frau'), 'validators' => array(array('type' => 'required', 'errorMessage' => 'Bitte wählen Sie Ihre Anrede aus.'))));
$formular->addElement('input', 'name', 'Name*', array('attributes' => array('class' => 'L'), 'validators' => array(array('type' => 'required', 'errorMessage' => 'Bitte geben Sie einen Namen an'))));
$formular->addElement('input', 'street', 'Strasse*', array('attributes' => array('class' => 'M'), 'validators' => array(array('type' => 'required', 'errorMessage' => 'Bitte geben Sie eine Strasse an'))));
$formular->addElement('input', 'streetNumber', 'Hausnr.*', array('attributes' => array('class' => 'XS'), 'validators' => array(array('type' => 'required', 'errorMessage' => 'Bitte geben Sie eine Hausnummer an'))));
$formular->addElement('input', 'zip', 'PLZ*', array('attributes' => array('class' => 'XS'), 'validators' => array(array('type' => 'required', 'errorMessage' => 'Bitte geben Sie eine gültige Postleitzahl an'))));
$formular->addElement('input', 'town', 'Stadt*', array('attributes' => array('class' => 'M'), 'validators' => array(array('type' => 'required', 'errorMessage' => 'Bitte geben Sie eine Stadt an'))));
$formular->addElement('input', 'email', 'E-Mail*', array('attributes' => array('class' => 'L'), 'validators' => array(array('type' => 'email', 'errorMessage' => 'Bitte geben Sie eine gültige E-Mail Adresse an'))));
$formular->addElement('select', 'found', '', array('attributes' => array('class' => 'L'), 'options' => array('' => 'Wie haben Sie uns gefunden?', 'Über das Internet' => 'Über das Internet', 'In Printmedien' => 'In Printmedien')));
$frameworkClasses = array();
$query = array();
$query['dir'] = '/dev/dokumentationen/framework/klassen';
$query['orderBy'] = '/wd:extension/wd:meta/wd:title/text()';
$query['orderDir'] = 'asc';
$result = wRepository::selectDocuments($query);
foreach($result as $document){
$frameworkClasses[$document] = '';
}
$formular->addElement('checkbox', 'classes', '', array('attributes' => array('class' => 'wglCheckboxFloat'), 'options' => $frameworkClasses, 'validators' => array(array('type' => 'required', 'errorMessage' => 'Bitte wählen Sie mindestens eine Klasse aus.'))));
$formular->addElement('selectMulti', 'format', 'Format*', array('attributes' => array('style' => 'width:100%'), 'options' => array('print' => 'gedruckt', 'pdf' => 'PDF', 'html' => 'HTML'), 'validators' => array(array('type' => 'required', 'errorMessage' => 'Bitte wählen Sie mindestens Format aus.'))));
$formular->addElement('textarea', 'text', 'Kommentar', array('attributes' => array('class' => 'L')));
$formular->addElement('radio', 'payment', 'Zahlweise*', array('options' => array('pre' => 'Vorkasse', 'paypal' => 'Paypal', 'bill' => 'Rechnung'), 'validators' => array(array('type' => 'required', 'errorMessage' => 'Bitte wählen Sie Ihre Anrede aus.'))));
$formular->addElement('checkbox', 'furtherInfo', 'Zukünftiger Kontakt', array('options' => array('mail' => 'Sie dürfen mich per Mail kontaktieren', 'telefon' => 'Sie dürfen mich per Telefon kontaktieren', 'brief' => 'Sie dürfen mich per Post kontaktieren'), 'validators' => array()));
$formular->addElement('checkbox', 'generalTerms', '', array('attributes' => array('class' => 'wglCheckboxFloat'), 'options' => array('read' => ''), 'validators' => array(array('type' => 'required', 'errorMessage' => 'Bitte bestätigen Sie, dass Sie die Allgmeinen Geschäftsbedingungen gelesen haben.'))));
$formular->addElement('captcha', 'captcha', 'Bitte geben Sie diesen Text in das Feld ein', array('attributes' => array('style' => 'float:left', 'value' => rand(1000, 9999), 'height' => 16, 'quality' => 5)));
$formular->addElement('input', 'captchaInput', 'Sicherheitsabfrage', array('attributes' => array('class' => 'S'), 'validators' => array(array('type' => 'captcha', 'errorMessage' => 'Der eingegebene Wert stimmte nicht mit dem Wert auf dem Bild überein.'))));
$formular->addElement('submit', 'submit', 'Absenden');
$formular->elements['furtherInfo']->value = 'mail'; // Wert des Formularfeldes "furtherInfo" initialisieren
$formular->setVar('mailStr', 'From: [!--email--]
MIME-Version: 1.0
To: test@cmsedit.de
Subject: Neue Bestellung
Content-Type: text/plain; charset=UTF-8;
Sie haben die Bestellung über [!--url--] erhalten:
Anrede: [!--salutation--]
Name: [!--name--]
Strasse: [!--street--] [!--streetNumber--]
PLZ / Ort: [!--zip--] [!--town--]
E-Mail: [!--email--]
Gefunden über: [!--found--]
Darf kontaktiert werde per: [!--furtherInfo--]
Kommentar: [!--text--]
Gewünschte Klassen:
[!--classes--]
In den Formaten: [!--format--]
Zahlungsart: [!--payment--]
');
$formular->setVar('mailStrCustomer', 'From: test@cmsedit.de
MIME-Version: 1.0
To: [!--email--]
Subject: Ihre Bestellung
Content-Type: text/plain; charset=UTF-8;
Sehr geehrte(r) [!--salutation--] [!--name--]
Sie haben die Dokumentation zu folgende Klassen in den Formaten [!--format--] bestellt:
[!--classes--]
Vielen Dank für Ihre Bestellung. Wir werden diese schnellstmöglich bearbeiten.
Ihr Weblication Team
');
$formular->addEventServer('onSubmit', '
$this->setFormData(wRequest::getParameters());
if($this->validate()){
$mailData = $this->getFormData();
$mailData[\'url\'] = $this->url;
wMailer::sendMailStr($this->getVar("mailStr"), $mailData);
wMailer::sendMailStr($this->getVar("mailStrCustomer"), $mailData);
$this->initFormData();
$this->setStatus("sent");
wResponse::redirect($this->url);
}
else{
$this->setStatus("failed");
wResponse::redirect($this->url);
}
');
if($formular->getStatus() == 'sent'){
print '<div style="padding:8px;background-color:#ffffff;border:solid 1px #666666">Vielen Dank für Ihre Bestellung!</div>';
$formular->setStatus("");
}
else{
if($formular->getStatus() == 'failed'){
$formular->setStatus("");
}
$formular->build();
?>
<div class="elementForm">
<div name="frmDefault" method="POST" action="<?php print $formular->action; ?>">
<h3>Framework Klassen bestellen</h3>
<?php
if(!$formular->validate()){
print '<div class="errorMessages"><h4>Ihre Eingaben waren nicht korrekt!</h4>';
print $formular->elements['salutation']->renderErrorMessage();
print $formular->elements['name']->renderErrorMessage();
print $formular->elements['street']->renderErrorMessage();
print $formular->elements['streetNumber']->renderErrorMessage();
print $formular->elements['zip']->renderErrorMessage();
print $formular->elements['town']->renderErrorMessage();
print '</div>';
}
?>
<table>
<?php print $formular->elements['salutation']->renderRow(); ?>
<tr>
<td>Ihr Name*</td>
<td><?php print $formular->elements['name']->renderElement(); ?><br /><span class="textInfo">(Nachname, Vorname)</span></td>
</tr>
<tr>
<td style="white-space:nowrap;padding-right:10px"><?php print $formular->elements['street']->renderLabel(); ?> / <?php print $formular->elements['streetNumber']->renderLabel(); ?></td>
<td><?php print $formular->elements['street']->renderElement() ;?><?php print $formular->elements['streetNumber']->renderElement() ;?></td>
</tr>
<tr>
<td><?php print $formular->elements['zip']->renderLabel(); ?> / <?php print $formular->elements['town']->renderLabel(); ?></td>
<td><?php print $formular->elements['zip']->renderElement() ;?><?php print $formular->elements['town']->renderElement() ;?></td>
</tr>
<?php print $formular->elements['email']->renderRow(); ?>
<?php print $formular->elements['text']->renderRow(); ?>
<tr>
<td></td>
<td>
<div style="background-color:#f0f0f0;padding:0 0 8px 0">
<h4 style="padding:8px">Gewünschte Klassen:</h4>
<?php print $formular->elements['classes']->renderErrorMessage();?>
<?php
foreach($formular->elements['classes']->optionObjects as $optionObject){
print '<div style="border-top:solid 1px #ffffff;padding:8px">';
print '<div style="float:left;margin:0 4px 0 0">'.$optionObject->renderElement().'</div>';
print wDocumentData::getData($optionObject->getValue(), 'title');
print '</div>';
print '<div style="color:#888888;padding:0 0 10px 29px">';
print wDocumentData::getData($optionObject->getValue(), 'description')."<br />";
print '</div>';
}
?>
</div>
</td>
</tr>
<?php print $formular->elements['format']->renderRow(); ?>
<?php print $formular->elements['payment']->renderRow(); ?>
<?php print $formular->elements['furtherInfo']->renderRow(); ?>
<tr>
<td></td>
<td><?php print $formular->elements['found']->renderElement(); ?></td>
</tr>
<tr>
<td> </td>
<td><?php print $formular->elements['generalTerms']->renderErrorMessage();?><div class="elementText"><?php print $formular->elements['generalTerms']->renderElement(); ?>Die Allgmeinen Geschäftsbedingungen habe ich gelesen und bin damit einverstanden.</div><td>
</tr>
<tr>
<td><?php print $formular->elements['captchaInput']->renderLabel(); ?></td>
<td>
<?php print $formular->elements['captchaInput']->renderErrorMessage();?><?php print $formular->elements['captcha']->renderElement(); ?><?php print $formular->elements['captchaInput']->renderElement(); ?>
<div class="textInfo" style="clear:left">Bitte tragen Sie den Wert auf dem Bild in das Eingabefeld ein.</div>
</td>
<tr>
<td colspan="2" style="text-align:right"><?php print $formular->elements['submit']->renderElement(); ?></td>
</tr>
</table>
</div>
</div>
<?php
}
?>Ergebnis
Framework Klassen bestellen
| Ihr Name* | (Nachname, Vorname) |
|
| / | ||
| / | ||
Gewünschte Klassen:KI-Klasse Analyse Die aktuelle Installation Archivierungsfunktionen Klasse für Backups Klasse mit Informationen zur Ermittlung des Ressourcenverbrauchs Erstellt Schaltflächen in der Webseite Zugriff auf CSS-Daten Stellt Cache-Funktionen zur Verfügung Stellt Funktionen zur Generierung von Bildern aus Text zur Verfügung, um das automatisierte Versenden von Formularen zu verhindern Warenkorb Klasse für Kategorien Cron-Skripte Dabenbank-Objekt DOM zur Verarbeitung von XML-Daten Datumsfunktionen Versionsvergleich Klasse ermöglicht den Zugriff auf Verzeichniseinstellungen Dokumenten-Objekt Zugriff auf Daten eines Dokumentes Umgebung des aktuellen Skriptaufrufs Ereignis Klasse für Facebook Funktionen Stellt Formular Funktionen zur Verfügung Ermittelt GEO-Daten Ermöglicht den Zugriff auf Gruppendaten Ermöglicht den Zugriff auf Gruppen Klasse für Bildfunktionen Klasse für Sprachverwaltung Klasse für Linkprüfung Stellt Funktionen zur Generierung von Listen zur Verfügung Stellt E-Mail Funktionen zur Verfügung Nachrichtenzentrum Navigationsgenerator HTTP-Anfragen Stellt Newsletter Funktionen zur Verfügung Stellt Funktionen zur Generierung von Seiten und zur Manipulation der Ausgabe zur Verfügung. Klasse zur Generierung von PDF-Dokumenten über XSL-FO Seitenbeschleuniger Aktuelle Seite Aktuelle Seiten-Transformation Stellt Funktionen für die Verarbeitung von Dateipfaden zur Verfügung Klasse, um responsive Bilder über das PICTURE-Element zu generieren Verwaltet Informationen eines Projektes Verwaltet Informationen des aktuellen Projektes Ermöglicht das Schreiben und Lesen von Dateiinhalten Stellt Zugriffsmöglichkeiten auf Dateien und Verzeichnisse bereit Anfrage-Objekt Stellt Funktionen zu HTTP-Antworten zur Verfügung Die Framework-Klasse wSearch bietet die Schnittstelle zu einer Suche. Server Session HTTP-Anfrage Klasse macht HTML statisch Zeichenkettenmanipulation Abos Tag-Wolke / Tag-Cloud Zugriff auf globale Texte Erstellt verkleinerte Vorschaubilder Schnittstelle zu Twitter URL Klasse Von Benutzern generierter Inhalt, wie z.B. Kommentare und Bewertungen Daten zum aktuellen Benutzer Benutzerdaten Benutzer Utils Klasse, mit allgemeinen nützlichen Funktionen Zugriff auf Werte Zugriff auf globale Variablen WSL-Klasse über die wsl-Elemente simuliert werden können. Klasse für Weblic® Funktionen Webstatistic Workflow-Funktionen XSLT-Prozessor Entpacken von ZIP-Archiven |
||
Die Allgmeinen Geschäftsbedingungen habe ich gelesen und bin damit einverstanden. | ||
|
Bitte tragen Sie den Wert auf dem Bild in das Eingabefeld ein.
|
||