# Change-Checkbox

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

```php
	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 )`

```php
		// --------------------------------------------------------------------
		// 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...](https://2547061836-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-LaV7PHur_BU6MA3-5lA%2F-MWdWkEGhDNEhtP2I52V%2F-MWdYShs8b0BGSfE6vmJ%2Fchange-checkbox-formular.png?alt=media\&token=2088fa47-cf31-49f2-8a82-351fb5526bb9)
