Veröffentlichungsdatum: 05. August 2010
Änderungsdatum: 21. Juni 2021
Anwendungsbeispiel: Gestaltetes Kontaktformular, bei dem die Elemente individuell platziert und die Styleangaben direkt an die Elemente übergeben wurden
<?php
$formular = new wForm();
$formular->resetIfHasBeenCalledWithStatus();
$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', 'type', 'Typ*', array('attributes' => array('class' => 'L'), 'options' => array('' => 'Bitte wählen Sie Ihren Status aus', 'customer' => 'Kunde', 'prospect' => 'Interessent'), 'validators' => array(array('type' => 'required', 'errorMessage' => 'Bitte wählen Sie Ihren Status aus.'))));
$formular->addElement('submit', 'submit', 'Absenden');
$formular->addEventServer('onSubmit', '
if(wRequest::getParameter("wFormAction") == "reset"){
$this->reset();
wResponse::redirect($this->url);
}
$this->setFormData(wRequest::getParameters());
if($this->validate()){
$this->initFormData();
$this->setStatus("sent");
wCache::clearCachePath($this->url);
//wResponse::redirect($this->referrer);
$redirectURL = wURL::setParameter($this->url, \'wFormStatus\', \'\');
wOutput::loadWithoutCache($redirectURL);
wResponse::redirect($redirectURL);
}
else{
$this->setStatus("failed");
//wResponse::redirect($this->referrer);
$redirectURL = wURL::setParameter($this->url, \'wFormStatus\', \'failed\');
wOutput::loadWithoutCache($redirectURL);
wResponse::redirect($redirectURL.\'#wFormErrorMessages\');
}
');
if($formular->getStatus() == 'sent'){
print '<div style="padding:8px;background-color:#ffffff;border:solid 1px #666666">Vielen Dank für Ihre Anmeldung!</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; ?>">
<?php
if(!$formular->validate()){
print '<div class="errorMessages">';
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 $formular->elements['type']->renderErrorMessage();
print '</div>';
}
?>
<dl class="formTable">
<dt>Ihr Name*</dt>
<dd><?php print $formular->elements['name']->renderElement(); ?><br /><span class="textInfo">(Nachname, Vorname)</span></dd>
<dt><?php print $formular->elements['street']->renderLabel(); ?> / <?php print $formular->elements['streetNumber']->renderLabel(); ?></dt>
<dd><?php print $formular->elements['street']->renderElement(); ?><?php print $formular->elements['streetNumber']->renderElement(); ?></dd>
<dt><?php print $formular->elements['zip']->renderLabel(); ?> / <?php print $formular->elements['town']->renderLabel(); ?></dt>
<dd><?php print $formular->elements['zip']->renderElement(); ?><?php print $formular->elements['town']->renderElement(); ?></dd>
<dt><?php print $formular->elements['type']->renderLabel(); ?></dt>
<dd><?php print $formular->elements['type']->renderElement(); ?></dd>
<dt><?php print $formular->elements['email']->renderLabel(); ?></dt>
<dd><?php print $formular->elements['email']->renderElement(); ?></dd>
<dt> </dt>
<dd><?php print $formular->elements['submit']->renderElement(); ?></dd>
</dl>
</div>
</div>
<?php
}
?>