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'
] ) ;