Formular select Feld Das Formularelement vom Type "select" dient der Datenauswahl aus einer DropDown-Liste in einem Formular
Copy /**
* Create a select box field.
*
* @param string $name
* @param string $label
* @param array $list
* @param string $selected
* @param array $options
* [
* 'placeholder' => '
* ]
*
* @return string
*/
public function select($name, $label = null, $list = [], $selected = null, array $options = []) {
// ...
}
Parameter für das select Feld
Name des Input-Feldes. Dieser wird beim Senden des Formulars in $_GET
übergeben.
Feldüberschrift für das Eingabefeld. Wird kein $label
übergeben, so wird $name
als Label übernommen.
Array mit den auswählbaren Einträgen. Falls die Einträge gruppiert werden sollen, ist ein mehrdimensionales Array zu verwenden.
Wert des Input-Feldes. Der übergebene Wert wird in der DropDown-Liste ausgewählt und kann bearbeitet werden.
Array mit Optionen / Attributen zu einem input-Feld. Hier sind grundsätzlich alle HTML-Attribute erlaubt.
Selectpicker
Der Formulareditor ist mit der Erweiterung "bootstrap-select" ausgestattet.
Weiter Informationen gibt es hier: https://developer.snapappointments.com/bootstrap-select/
Die Vollständige Dokumentation ist auf der zugehörigen Hompage einzusehen: https://developer.snapappointments.com/bootstrap-select/options/#bootstrap-version
duallistbox
Der Formulareditor ist mit der Erweiterung "bootstrap-duallistbox" ausgestattet.
Weitere Informationen gibt es hier: https://github.com/istvan-ujjmeszaros/bootstrap-duallistbox
Eine Dokumentation mit Beispielen gibt es hier: https://www.virtuosoft.eu/code/bootstrap-duallistbox/
Beispiele
Standard
Copy $FormHtml [] = $FrmObj->select ( 'Auswahl-Select', 'Ausahl', array (
'1' => 'Eins',
'2' => 'zwei'
), '2' );
Group-Select
Copy FormHtml [] = $FrmObj->select ( 'Group-Select', 'Group-Auswahl', array (
'Eins' => [
'1.0' => 'Eins.Null',
'1.1' => 'Eins.Eins'
],
'Zwo' => [
'2.0' => 'Zwo.Null',
'2.1' => 'Zwo.Eins'
],
'3' => 'Direkt Drei'
), '1.0' );
Bootstrap-selectpicker
Copy $choices = [
'1' => 'Eins',
'2' => 'zwei',
'3' => 'drei',
'4' => 'vier',
'5' => 'fünf',
'6' => 'SECHS'
];
$FormHtml [] = $FrmObj->select ( 'Selectpicker[]', 'bootstrap-selectpicker', $choices, '4', [
'placeholder' => af_tran ( 'ohne' ),
'title' => 'Titel des selectpicker',
'id' => 'alaf_selopt_id_3',
'helptext' => 'siehe https://silviomoreto.github.io/bootstrap-select/',
'multiple' => 'multiple',
'selectpicker' => [
'data-size' => '15',
'data-live-search' => 'true'
]
] );
Bootstrap-selectpicker mit subtext
Copy $choices = [
'1' => 'Eins',
'2' => 'zwei',
'3' => 'drei',
'4' => 'vier',
'5' => 'fünf',
'6' => 'SECHS'
];
$opt_data = [
'1' => [
'data-subtext' => 'hier bei Hallo'
],
'2' => [
'data-subtext' => 'hier bei zwo oder soo'
],
'3' => [ ],
'4' => [
'data-subtext' => 'vier ist eine schöne Zahl!'
],
'5' => [
'data-subtext' => 'füüüüünfffff'
],
'6' => [ ]
];
$FormHtml [] = $FrmObj->select ( 'Selectpicker2[]', 'bootstrap-selectpicker', $choices, '4', [
'option_data' => $opt_data, // Hier wird der Zusatztext erzeugt
'placeholder' => af_tran ( 'ohne' ),
'title' => 'Titel des selectpicker',
'id' => 'alaf_selopt_id_3',
'helptext' => 'mit Zusatztext über "option_data"-Attribut...',
'selectpicker' => [
'data-size' => '15',
'data-show-subtext' => 'true'
]
] );
Bootstrap-selectpicker AJAX
Copy if ($data ['LIFNR'] == "NEW") {
include_once (ALAF_MODULES_DIR . DS . 'Lager000\includes\class.LagerPublicFunctions.php');
$ObjLPFOpt = new LagerPublicFunctions ();
$choices = $ObjLPFOpt->getLfa1Opt ( [
'LIFNR[=]' => $data ['LIFNR']
] );
$FormHtml [] = $FrmObj->select ( 'MX_LIFNR[' . $lifnr . ']', af_tran ( 'Lieferant' ), $choices, $data ['LIFNR'], [
'placeholder' => af_tran ( 'ohne' ),
'title' => af_tran ( 'Lieferant' ),
'id' => 'alaf_selopt_sap_lfa1_id',
// 'helptext' => 'wie oben, mit Ergänzung ajax! https://github.com/truckingsim/Ajax-Bootstrap-Select',
// 'multiple' => 'multiple',
'selectpicker' => [
'data-size' => '15',
'data-live-search' => 'true',
'data-actions-box' => 'true',
'data-selected-text-format' => 'count > 5',
'data-show-subtext' => 'true',
'data-size' => 10,
'with-ajax' => [
'ajax-url' => 'modules/Lager000/api/alaf_server_side.php',
'ajax-type' => 'POST',
'ajax-dataType' => 'json',
'ajax-op' => 'get_lfa1',
'locale-emptyTitle' => af_tran ( 'Bitte einen Eintrag wählen...' ),
'locale-statusSearching' => af_tran ( 'Suche...' ),
'locale-statusTooShort' => af_tran ( 'Mindestens x-Zeichen eingeben...' ),
'locale-emptyTitle' => af_tran ( 'Select and begin typing...' ),
'locale-errorText' => af_tran ( 'hier gab es einen Fehler!!!' ),
'log' => 0,
'min-length' => '2',
'cache' => 'false',
'clear-on-error' => 'true',
'clear-on-empty' => 'true'
]
],
'right_column_class' => $FrmObj->column_class [8]
] );
} else {
$FormHtml [] = $FrmObj->hidden ( 'MX_LIFNR[' . $lifnr . ']', $data ['LIFNR'] );
}
Serverseitig muss ein php-skript die Datenaufbereitung vornehmen. Hier ist ein Beispiel für die Lieferantendaten....:
Bootstrap-duallistbox
Copy $FormHtml [] = $FrmObj->select ( 'wf_roll_ids[OWNER][]', af_tran ( 'Verantwortlich' ), $user_choices, $data ['wf_roll_ids'] ['OWNER'], [
'multiple' => 'multiple',
'element-div' => [
'type' => 'card',
'style' => 'width: 100%',
'class' => 'bg-light'
],
'duallistbox' => [
'moveOnSelect' => 'false',
'selectedListLabel' => af_tran ( 'Ausgewählte Rollenverantwortliche' ),
'nonSelectedListLabel' => af_tran ( 'Auswählbare Benutzer' ),
'showFilterInputs' => 'true',
'nonSelectedFilter' => '', // z.B.: 'ion ([7-9]|[1][0-2])'
'selectedFilter' => '',
'selectorMinimalHeight' => 100,
'filterOnValues' => 'false' // set this to true to filter the options according to their values and not their HTML contents.
],
'title' => af_tran ( 'Benutzer, welche(r) für die Workflowaufgaben verantwortlich ist' ),
'id' => 'alaf_selopt_wf_roll_owner_ids_id'
] );