Wrapper Widget to use jQuery Plugin Select2 in Yii2 application.
Select2 script: https://github.com/ivaynberg/select2
Download or clone this repository and paste in /PROJECT-ROOT/vendor/yiisoft/yii2-select2/yii/select2
Configure this extension in /PROJECT-ROOT/vendor/yiisoft/extensions.php
'yiisoft/yii2-typeahead' => array ( 'name' => 'yiisoft/yii2-typeahead', 'version' => '9999999-dev', 'alias' => array ( '@yii/typeahead' => $vendorDir . '/yiisoft/yii2-typeahead/yii/typeahead', ), ),
In your view file (_form.php)
$model, 'attribute' => 'country_id', 'clientOptions' => [ //'local' => [], 'name' => 'country_id', 'limit' => 1, 'valueKey' => 'text', 'remote' => [ 'url' => Yii::$app->urlManager->createAbsoluteUrl('data/country/findcountry'). '&term=%QUERY', // 'cache' => false, ], 'engine' => new yii\web\JsExpression('Hogan'), 'template' => '{{id}}{{text}} - {{id}}
', ], 'events' => [ 'selected' => new yii\web\JsExpression("function(evt,data) { alert(data); };"), ], ]); ?>Or in config
```php
...
'import' => array(
...
'ext.select2.Select2',
...
),
...
You can replace the
CHtml::dropDownList()
by Select2::dropDownList()
CHtml::activeDropDownList()
by Select2::activeDropDownList()
Or
...
echo Select2::multiSelect("test", null, array('test1','test2'), array(
'required' => 'required',
'placeholder' => 'This is a placeholder',
'select2Options' => array(
'maximumSelectionSize' => 2,
),
));
...
echo Select2::activeMultiSelect($model, "attr", array('test1','test2'), array(
'placeholder' => 'This is a placeholder',
));
...
Or this
...
$this->widget('Select2', array(
'name' => 'inputName',
'value' => 2,
'data' => array(
1 => 'Option 1',
2 => 'Option 2',
3 => 'Option 3',
4 => 'Option 4',
),
));
...