> For the complete documentation index, see [llms.txt](https://alaniso-de.gitbook.io/alaf-framework/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://alaniso-de.gitbook.io/alaf-framework/change-checkbox.md).

# 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...](/files/-MWdYShs8b0BGSfE6vmJ)
