Fügt dem Formular ein Eingabefeld bzw. Element hinzu
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
<?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();
?>
<?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.
<?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'))));
//...
?>
<?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'))));
//...
?>
<?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'))));
//...
?>
<?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.'))));
?>
<?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.