Veröffentlichungsdatum: 19. Juli 2016
Dieser Artikel beschreibt, wie Sie dynamisch Werte - wie z.B. Benutzerdaten - an ein Formular übergeben.
Der Formulareditor ermöglicht es Ihnen, einem Formular beim Aufruf bereits Werte mitzugeben. So können Sie im Formular z.B. die Daten des aktuell eingeloggten Benutzers initialisieren / vorbelegen.
Öffnen Sie hierzu das entsprechende Formular zur Bearbeitung und Klicken Sie auf den Button "Erweiterte Formulareinstellungen einblenden" (siehe nachfolgender Screenshot).
Beachten Sie, dass diese Funktion nur mit dem Formulareditor nutzbar ist! Alternativ bleibt die Möglichkeit, die Einträge manuell im Quelltext der Formularseite unter "serverEventOnBeforeBuild" vorzunehmen.
Über die erweiterten Formulareinstellungen setzen Sie die gewünschten Werte im Eingabefeld "Vor der Erstellung auszuführendes Skript".
Im nachfolgenden Beispiel werden folgende Werte für Formularfelder gesetzt:
Das Beispiel aus dem oberen Screenshot finden Sie nachfolgend nochmals als Quelltextbeispiel. Achten Sie darauf, dass im Feld "Vor der Erstellung auszuführendes Skript" keine PHP-Tags um den PHP-Code gesetzt werden dürfen!
$this->elements['site']->value = $_SERVER['PHP_SELF'];
$this->elements['customertype']->value = wRequest::getParameterSecure('customertype');
$this->elements['customernumber']->value = wUserData::getMeta('customerID');
$this->elements['company']->value = wUserData::getData('/wUser/company[@class="business"]/@value');
if(wUserData::getData('title') == "mr"){
$this->elements['title']->value = "Herr";
}
elseif(wUserData::getData('title') == "ms"){
$this->elements['title']->value = "Frau";
}
$this->elements['firstname']->value = wUserData::getData('firstname');
$this->elements['lastname']->value = wUserData::getData('lastname');
$this->elements['phone']->value = wUserData::getData('/wUser/phone[@class="business"]/@value');
$this->elements['email']->value = wUserData::getData('email');
// die values entsprechen den Einträgen in der caption
$tmp[] = 'Auswahl 1';
$tmp[] = 'Auswahl 3';
$this->elements['multi']->value = $tmp;
// die values entsprechen nicht den Einträgen in der caption
$tmpCat[] = 'AF';
$tmpCat[] = 'GB';
$this->elements['multicat']->value = $tmpCat;