Funktionalität zur Darstellung von Checkboxen vor/nach Formular-Inputs
In manchen Fällen ist es Sinnvoll, dass Änderungen an Datenbeständen dokumentiert werden, sodass Folgebearbeiter nicht alle Feldinhalte prüfen müssen.
Dazu bietet die Formular-Engine eine Funktion an, welche zu einer benannten Liste von Feldern diese Checkboxen automatisch erzeugt und zum Input-Feld hinzufügt.
Settings
protected $FieldChangeCBSettings = [ 'postname'=>'form_change_cb',// POST-Variable für die Change-CheckBoxen'position'=>'left',// Anordnung left|right vom Input-Feld'title'=>'Änderung markieren','value'=>'0','class'=>'custom-control custom-checkbox','class-input'=>'custom-control-input','class-label'=>'custom-control-label'// 'abc' => [// 'abc-checkbox-default',// 'abc-checkbox-success'// ] ];
Beispiel
Das Formularobjekt $FrmObj ist ein Objekt der Formular-Klasse
Die $_POST - Variablen des Formular werden als Array mit dem Namen 'postname' dargestellt.
Im Beispiel: CHANGE_FIELDS => Array ( [MANDT] => 1 [SHORTTEXT] => on [TAGS] => on [SAP_KUNNR] => on [SAP_VKBUR] => on )
// --------------------------------------------------------------------// Start: Feldänderungen sollen mit einer Checkbox ergänzt werden: $FrmObj->FieldChangeCBSettings ['postname'] ='CHANGE_FIELDS'; // POST-Variable für die Change-CheckBoxen $FrmObj->FieldChangeCBSettings ['position'] ='left'; // Anordnung left|right vom Input-Feld// Liste der Felder, welche eine Change-Checkbox erhalten sollen: $change_fields = [ 'SHORTTEXT'=>0,'DESCRIPTION'=>0,'TAGS'=>0,'SAP_KUNNR'=>0,'SAP_VKBUR'=>0 ];// aktuelle Daten mit der Liste abmischen:if (isset ( $data ['CHANGE_FIELDS'] )) { $change_fields =array_merge ( $change_fields, unserialize ( $data ['CHANGE_FIELDS'] )); }// Liste an Formular-Engine geben: $FrmObj->setFieldChangeCB( $change_fields );// Trick, damit CHANGE_FIELDS bei jedem Post aktualisiert wird, auch wenn es keinen ausgewählten Eintrag gibt! $FormHtml [] = $FrmObj->hidden('CHANGE_FIELDS[MANDT]',1);// Ende: Feldänderungen sollen mit einer Checkbox ergänzt werden:// --------------------------------------------------------------------