wForm::addElement

Fügt dem Formular ein Eingabefeld bzw. Element hinzu

Funktionsaufruf

Boolean addElement(String type, String name = null, label = null, options = array())

Parameter

type
Typ des Elementes
name
Name des Elementes
label
Bezeichnung
options
Eigenschaften
Formulareditor
PHP
Formulareditor

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();

?>
PHP

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

?>

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.