Veröffentlichungsdatum: 05. August 2010
Änderungsdatum: 21. Juni 2021
formular radiobutton checkbox individuell
Anwendungsbeispiel: Formular mit allen verfügbaren Elementen
<?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->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">
<form 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>
</form>
</div>
<?php
}
?>