Formularwerte dynamisch setzen

19. Jul 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.

Formulareditor - Erweitere Formulareinstellungen einblendenzoom
Formulareditor - Erweitere Formulareinstellungen einblenden

Ü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:

  • Wert des Elementes "site" wird auf aktuelle Seite gesetzt
  • Wert des Elementes "customertype" wird als Requestparameter gesetzt, also aus der URL gezogen
  • Diverse Benutzerdaten (Vorname, Nachname, Kundennummer, etc.) werden in den jeweiligen Formularefeldern gesetzt.
Formulareditor - Erweitere Formulareinstellungen (Vor der Erstellung auszuführendes Skript)zoom
Formulareditor - Erweitere Formulareinstellungen (Vor der Erstellung auszuführendes Skript)

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!

Beispiel: Auszug aus den erweiterten Formulareinstellungen des Formulareditors

$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');

Weitere Beispiele

Beispiel: Initialisieren von MultiSelect-Feldern

// die values entsprechen den Einträgen in der caption
$tmp[] = 'Auswahl 1';
$tmp[] = 'Auswahl 3';
$this->elements['multi']->value $tmp;

Beispiel: Initialisieren von Kategorien

// die values entsprechen nicht den Einträgen in der caption
$tmpCat[] = 'AF';
$tmpCat[] = 'GB';
$this->elements['multicat']->value $tmpCat;

Ähnliche Seiten

Entwicklerbereich Weblication® CMS - © Scholl Communications AG