Вообщем пытаюсь прикрутить этот jquery плагин
designwithpc.com/Plugins/ddSlick. Он позволяет вставлять картинки в выпадающий список. Для этого нужно в каждый option в select вставить атрибут data-imagesrc="путь к изображению".
В данный момент выпадающий список делается так:
Html::dropDownList('league', 'id', ArrayHelper::map(League::find()->all(),'id','name'), [
'prompt' => 'Select league',
'class' => 'center-block',
'style' => 'width: 80%;',
'id' => 'leagues',
]);
Вопрос: как красиво приклеить еще сюда data-imagesrc с нужным изображением? Как выриант можно через ajax формировать нужный html код, но мне кажется это не слишком правильным.
Thanks in advance
UPD:
Как в yii2 добавить dropDown с картинками:
1) Подключаем этот плагин designwithpc.com/Plugins/ddSlick
2) Делаем php функцию, возвращающую нужный нам html код
public function actionGetModelsWithImages(){
$models = Models::find()->all();
$items = [];
$options = [];
foreach($models as $model){
//Формируем массив option'ов для нашего select'а
$items[$model->id] = $model->name;
$image32x32Path = "images/32x32/" . $model->name . ".png";
//Формируем массив атрибутов для каждого option'а
//Эти атрибуты(data-imagesrc, data-description) нужны для плагина
$options[$model->id] = [
'data-imagesrc' => $image32x32Path,
'data-description' => $model>name,
];
}
return Html::dropDownList('nameSelectModels', 'id', $items, [
'id' => 'selectModels',
'options' => $options,
]);
}
3) В javascript добавляем:
$.ajax({
type: 'GET',
url: 'index.php?r=prediction/getModelsWithImages',
success: function(data){
//добавляем html в нужный div
$('#leagues').html(data);
//активируем плагин
$('#selectModels').ddslick({
width: 350,
});
}
});