dev-master
9999999-devDual Listbox Widget for Yii 2
BSD-3-Clause
The Requires
by Nobuo Kihara
yii2 yii 2 widget duallistbox dual-listbox
Dual Listbox Widget for Yii 2
Dual Listboxt for Yii framework 2.0., (*1)
softark\duallistbox\DualListbox widget is a Yii 2 wrapper for Bootstrap Dual Listbox., (*2)
Add softark/yii2-dual-listbox
in your project's composer.json
, and let Composer configure your project., (*3)
"require": { "php": ">=5.4.0", "yiisoft/yii2": "*", "yiisoft/yii2-bootstrap": "*", "yiisoft/yii2-swiftmailer": "*", "softark/yii2-dual-listbox": "dev-master" },
Use softark\duallistbox\DualListbox::widget()
in place of yii\helpers\Html::listBox()
, yii\helpers\Html::activeListBox()
, or yii\widgets\ActiveField::listBox()
in your view., (*4)
Replacing Html::listBox() using name and selection, (*5)
use softark\duallistbox\DualListbox; ... <?php $options = [ 'multiple' => true, 'size' => 20, ]; // echo Html::listBox($name, $selection, $items, $options); echo DualListbox::widget([ 'name' => $name, 'selection' => $selection, 'items' => $items, 'options' => $options, 'clientOptions' => [ 'moveOnSelect' => false, 'selectedListLabel' => 'Selected Items', 'nonSelectedListLabel' => 'Available Items', ], ]); ?>
Replacing Html::activeListBox() using model and attribute, (*6)
use softark\duallistbox\DualListbox; ... <?php $options = [ 'multiple' => true, 'size' => 20, ]; // echo Html::activeListBox($model, $attribute, $items, $options); echo DualListbox::widget([ 'model' => $model, 'attribute' => $attribute, 'items' => $items, 'options' => $options, 'clientOptions' => [ 'moveOnSelect' => false, 'selectedListLabel' => 'Selected Items', 'nonSelectedListLabel' => 'Available Items', ], ]); ?>
Replacing ActiveField::listBox() using model and attribute, (*7)
use softark\duallistbox\DualListbox; ... <?php $options = [ 'multiple' => true, 'size' => 20, ]; // echo $form->field($model, $attribute)->listBox($items, $options); echo $form->field($model, $attribute)->widget(DualListbox::className(),[ 'items' => $items, 'options' => $options, 'clientOptions' => [ 'moveOnSelect' => false, 'selectedListLabel' => 'Selected Items', 'nonSelectedListLabel' => 'Available Items', ], ]); ?>
Collect the user input in the server side, just as you do with a single Listbox with multiple selection. Note that the input value will be an array., (*8)
If you find difficulty in handling the user input, please read A Sample Code which demonstrates how to use a dual listbox to the data in array format., (*9)
name @var string, (*10)
The input name., (*11)
selection @var array, (*12)
The selected values., (*13)
model @var yii\base\Model, (*14)
The model object., (*15)
attribute @var string, (*16)
The attribute name., (*17)
items @var array, (*18)
The option data items. The array keys are option values, and the array values are the corresponding option labels., (*19)
options @var array, (*20)
The tag options for the listbox in terms of name-value pairs., (*21)
clientOptions @var array, (*22)
The options for the Bootstrap Dual Listbox in terms of name-value pairs. See Initialzation parameters object section of the official documentation of Bootstrap Dual Listbox for details., (*23)
The first 6 properties correspond to the parameters used in Html::listBox()
, Html::activeListBox()
and ActiveField::listBox()
., (*24)
Note that you have to use either name-selection pair or model-attribute pair. The former is for replacing Html::listBox()
and the latter is for Html::activeListBox()
and ActiveField::listBox()
., (*25)
Dual Listbox Widget for Yii 2
BSD-3-Clause
yii2 yii 2 widget duallistbox dual-listbox