1. Go to this page and download the library: Download conquer/select2 library. Choose the download type require.
2. Extract the ZIP file and open the index.php.
3. Add this code to the index.php.
<?php
require_once('vendor/autoload.php');
/* Start to develop here. Best regards https://php-download.com/ */
conquer / select2 example snippets
// Form edit view
use conquer\select2\Select2Widget;
use yii\helpers\ArrayHelper;
$form->field($model, 'attribute')->widget(
Select2Widget::className(),
[
'items'=>ArrayHelper::map(Catalog::find()->all(), 'id', 'name')
]
);
use conquer\select2\Select2Action;
...
class SiteController extends Controller
{
public function actions()
{
return [
'ajax' => [
'class' => Select2Action::className(),
'dataCallback' => [$this, 'dataCallback'],
],
];
}
/**
*
* @param string $q
* @return array
*/
public function dataCallback($q)
{
$query = new ActiveQuery(Catalog::className());
return [
'results' => $query->select([
'catalog_id as id',
'catalog_name as text',
])
->filterWhere(['like', 'catalog_name', $q])
->asArray()
->limit(20)
->all(),
];
}
}
// Form edit view:
$form->field($model, 'attribute')->widget(
Select2Widget::className(),
[
'ajax' => ['site/ajax']
]
);
<?= $form->field($model, 'multipleItems')->widget(Select2Widget::className(), [
'options' => [
'placeholder' => 'Select items ...',
],
'ajax' => Url::to(['items/search']),
'multiple' => true,
'items' => ArrayHelper::map($model->multipleItems, 'id', 'text'),
// Initial data the same, as returned results from Ajax request items/search
'data' => $model->multipleItems,
'settings' => [
'ajax' => ['delay' => 250],
'minimumInputLength' => 1,
'minimumResultsForSearch' => -1,
/**
* Handlebars here is used as example of using template engine
* If you will not provide initial data,
* custom templates will not access additional info of items
*/
'templateResult' => 'js:Handlebars.compile($("#template-result").html())',
'templateSelection' => 'js:Handlebars.compile($("#template-selection").html())',
'escapeMarkup' => 'js:function(markup){ return markup; }',
],
])
$ php composer.phar
Loading please wait ...
Before you can download the PHP files, the dependencies should be resolved. This can take some minutes. Please be patient.