indicalabs / yii2-select2
The Select2 widget for the Yii framework
Installs: 229
Dependents: 0
Suggesters: 0
Security: 0
Stars: 0
Watchers: 2
Forks: 0
Open Issues: 0
Type:yii2-extension
Requires
- php: >=7.4
- npm-asset/select2: 4.0.5
- npm-asset/select2-bootstrap-theme: ~0.1.0-beta.10
- npm-asset/vue-select: ~2.4.0
- yiisoft/yii2: 2.0.49
This package is auto-updated.
Last update: 2025-01-05 15:42:11 UTC
README
Wrapper Widget to use jQuery Plugin Select2 in Yii2 application.
Select2 script: https://github.com/ivaynberg/select2
Installation
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', ), ),
Usage
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',
...
),
...
Example:
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', ), )); ...