Change-Checkbox
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.
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'
// ]
];
Das Formularobjekt
$FrmObj
ist ein Objekt der Formular-KlasseDie $_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:
// --------------------------------------------------------------------

Beispiel: Formular mit Change-Checkboxen vor den Input-Feldern...
Last modified 2yr ago