Значок данных CakePHP в раскрывающемся списке

Используя CakePHP (2.3), есть ли способ легко добавить дополнительные параметры к элементу option окна выбора?

При создании раскрывающегося списка выбора в шаблоне используйте следующий код:

echo $this->Form->input('icon_id', array(
  'label' => 'Icon',
  'empty' => ' ',
  'class' => 'selectbox'
));

Выводится следующий HTML (что правильно):

<div class="input select">
  <select name="data[Link][icon_id]" class="selectbox" id="LinkIconId">
    <option value=""> </option>
    <option value="16">fa-adjust</option>
    <option value="76">fa-anchor</option>
    <option value="135">fa-archive</option>
    <option value="6">fa-arrow-cicle-o-right</option>
    <option value="10">fa-arrow-circle-o-left</option>
...

Мой вопрос: могу ли я программно добавить атрибуты к тегу параметра, например, и, в частности, я хотел бы добавить атрибут data-icon со значением, совпадающим с текстом параметра? Например :

    <option value="6" data-icon="fa-arrow-circle-o-right">fa-arrow-cicle-o-right</option>

У меня есть ощущение, что мне может понадобиться написать помощника, чтобы сделать это.


person glapworth    schedule 30.04.2014    source источник


Ответы (1)


$options = array(
                 1 => 'One', 
                 2 => array('name' => 'Two', 'value' => 2,  'class' => 'extra'), 
                 3 => 'Three',
                 6 => array('name' => 'Six', 'value' => 6, "data-icon"=>"fa-arrow-circle-o-right")
);

echo $this->Form->input('my_option_id',array('type' =>'select', 'options'=>$options));

HTML=>

<select name="data[my_option_id]" id="my_option_id">
  <option value="1">One</option>
  <option value="2" class="extra">Two</option>
  <option value="3">Three</option>
  <option value="6" data-icon="fa-arrow-circle-o-right" >Six</option>
</select>
person Fury    schedule 30.04.2014
comment
Это блестящая идея. Итак, я сделал следующее. В моем контроллере я изменил способ работы ifind следующим образом: ' =› 'ASC'))), '', function($newArr) { return(array('name'=›$newArr, 'data-icon'=›'fa '.$newArr)); }); Но у меня нет возможности получить значение icon_id с помощью этой хеш-карты, чтобы я мог установить «значение» => «...» - person glapworth; 30.04.2014
comment
может быть... потому что вы делаете это в списке поиска. вы должны получить его найти все. я должен увидеть, как выглядит ваша таблица и данные - person Fury; 30.04.2014
comment
Я исправил это, я создаю свой собственный массив после извлечения из базы данных (foreach $icons as $key=›$value)... и затем передаю его в представление, которое теперь дает мне атрибут data-icon! Спасибо за вашу помощь. - person glapworth; 30.04.2014