wForm::addElement
Fügt dem Formular ein Eingabefeld bzw. Element hinzu
Funktionsaufruf
Parameter
- type
- Typ des Elementes
- name
- Name des Elementes
- label
- Bezeichnung
- options
- Eigenschaften
Die aufgeführten Beispiele werden im Formulareditor über das Feld "Vor Erstellung auszuführendes Script" eingesetzt. Da das Script innerhalb eines Formularobjektes ausgeführt wird sprechen Sie es mit $this an.
Auf die Eingabeelemente des Formulars greifen Sie mit $this->elements['elementname'] zu. Die Funktion muss nur eingesetzt werden, falls das Feld nicht über die Maske eingefügt wurde bzw. werden soll.
Möchten Sie Felder die bereits enthalten sind vorbelegen lesen Sie mehr unter: Formularwerte dynamisch setzen
Beispiel: Beispiel 1: Hinzufügen eines Elementes
Quelltext
<?php
/*Attribute festlegen*/
$attributes = array();
$attributes['class'] = 'L myClass';
$attributes['labelClass'] = 'textContent';
/*Validatoren festlegen*/
$validators = array();
$validators[]['type'] = 'required';
$validators[]['errorMessage'] = 'Bitte geben Sie einen Namen an';
/*Hinzufügen des Eingabefeldes*/
$this->addElement('input', 'name', 'Name*', array('attributes' => $attributes, 'validators' => $validators));
/*Initalisieren des Eingabefeldes*/
$this->elements['name']->value = wRequest::getParameterSecure('name');
/*Ausgabe des Feldes*/
$this->elements['name']->renderRow();
?>
Beispiel: Beispiel 2: Hinzufügen eines Elementes zu einem Formular (Datumsfeld)
Quelltext
<?php
/*Attribute festlegen*/
$attributes = array();
$attributes['class'] = 'date';
$attributes['labelClass'] = 'dateClass';
$attributes['readonly'] = 'readonly';
$attributes['data-datemin'] = 'today';
$attributes['data-dateformat'] = 'D, dd.mm.yy';
/*Validatoren festlegen*/
$validators = array();
$validators[]['type'] = 'pregMatchOrEmpty("(\w+), (0[0-9]|1[0-9]|2[0-9]|3[0-1])\.(0[0-9]|1[0-2])\.[1-2]\d\d\d")';
$validators[]['errorMessage'] = 'Bitte füllen Sie das Feld Von-Datum aus.';
$this->addElement('input', 'dateFrom', 'Von Datum*', array('attributes' => $attributes, 'validators' => $validators));
/*Ausgabe des Feldes*/
$this->elements['dateFrom']->renderRow();
?>
Bedenken Sie, daß beim manuellen Einbinden von Formularen auch die erforderlichen JavaScript-Dateien eingebunden werden müssen. Welche dies sind, entnehmen Sie am besten dem Quelltext einer Formularseite einer aktuellen Projektumgebung.
Beispiel: Beispiel 1: Hinzufügen eines Elementes zu einem Formular
Quelltext
<?php
$formular = new wForm();
$formular->addElement('input', 'name', 'Name*', array('attributes' => array('class' => 'L'), 'validators' => array(array('type' => 'required', 'errorMessage' => 'Bitte geben Sie einen Namen an'))));
//...
?>
Beispiel: Beispiel 2: Hinzufügen eines Elementes zu einem Formular (zusätzlich mit labelClass, ab CMS Version 007.001.180.000)
Quelltext
<?php
$formular = new wForm();
$formular->addElement('input', 'name', 'Name*', array('attributes' => array('class' => 'L', 'labelClass' => 'textClass'), 'validators' => array(array('type' => 'required', 'errorMessage' => 'Bitte geben Sie einen Namen an'))));
//...
?>
Beispiel: Beispiel 3: Hinzufügen eines Elementes zu einem Formular (zusätzlich mit eigener Klasse, ab CMS Version 012.004.018.000)
Quelltext
<?php
$formular = new wForm();
$formular->addElement('input', 'xxx', 'Name*', array('attributes' => array('class' => 'L myClass', 'labelClass' => 'textClass'), 'validators' => array(array('type' => 'required', 'errorMessage' => 'Bitte geben Sie einen Namen an'))));
//...
?>
Beispiel: Beispiel 4: Hinzufügen eines Elementes zu einem Formular (Datumsfeld)
Quelltext
<?php
$formular = new wForm();
$formular->addElement('input', 'dateFrom', 'Von Datum*', array(
'attributes' => array('class' => 'date', 'labelClass' => 'dateClass','readonly' => 'readonly','data-datemin' => 'today','data-dateformat' => 'D, dd.mm.yy'),
'validators' => array(array('type' => 'pregMatchOrEmpty("(\w+), (0[0-9]|1[0-9]|2[0-9]|3[0-1])\.(0[0-9]|1[0-2])\.[1-2]\d\d\d")', 'errorMessage' => 'Bitte füllen Sie das Feld Von-Datum aus.'))));
?>
Beispiel: Beispiel 5: Hinzufügen eines Selectfeldes + Validierung auf required
Quelltext
<?php
$formular = new wForm();
$value = '';
$attributes = array();
$attributes['class'] = 'L';
$options = array();
$options[''] = ''; /*Soll das Selectfeld auf required geprüft werden, dann muss der value '' sein*/
$options['recommendation'] = 'Empfehlung';
$options['www'] = 'Internet';
$options['socialmedia'] = 'Social Media';
$validators = array(array('type' => 'required', 'errorMessage' => 'Bitte geben Sie einen Wert ein'));
$formular->addElement('select', 'found', 'Wie haben Sie von uns erfahren?', array( 'attributes' => $attributes, 'options' => $options, 'validators' => $validators));
?>
Weiterführende Links
Hinweis
Beim Einsatz von Framework-Funktionen in eigenen Skripten beachten Sie bitte den Artikel "So verwenden Sie das PHP-Framework in eigenen Scripten".
Wenn Sie eine Funktion innerhalb einer Weblication® Seite z.B. über das PHP-Quelltext Element oder in einem XSL-Template über wsl:php einbinden, muss das Framework über die grid.php nicht mehr referenziert werden.