Joomla 1.6 Атрибуты для option JHTML

Тема в разделе "Программирование", создана пользователем nigredo, 13.04.2011.

  1. Offline

    nigredo Недавно здесь

    Регистрация:
    06.02.2009
    Сообщения:
    16
    Симпатии:
    0
    Пол:
    Мужской
    Доброго времени суток!

    Подскажите пожалуйста, как можно задавать атрибуты для option в выпадающем списке, например класс, используя JHTML.

    Заранее благодарю!
     
  2.  
  3. vesy
    Offline

    vesy специалист

    Регистрация:
    02.07.2010
    Сообщения:
    263
    Симпатии:
    53
    Пол:
    Мужской
    Код (PHP):
    1. echo JHTML::_('select.genericlist', $category, 'category', 'class="inputbox"','id', 'name' );
     
  4. Offline

    nigredo Недавно здесь

    Регистрация:
    06.02.2009
    Сообщения:
    16
    Симпатии:
    0
    Пол:
    Мужской
    vesy cпасибо помощь, но это немного не то, нужно что бы получилось след.:

    <select name="name">
    <option value="Значение по умолчанию" class="default-val">Значение по умолчанию</option>
    <option value="Значение 1">Значение 1</option>
    </select>

    Главное это присвоение класса в option. Как это сделать, я и не знаю.
     
  5. vesy
    Offline

    vesy специалист

    Регистрация:
    02.07.2010
    Сообщения:
    263
    Симпатии:
    53
    Пол:
    Мужской
    Как задать атрибут определенному элементу - сам не знаю)) В таких случаях пользуюсь foreach
    Например в модели
    Код (PHP):
    1. $db = &JFactory::getDBO();
    2. $query = "SELECT `name`, ёшвё FROM #__table";
    3. $db->setQuery($query);
    4. $data = $db->loadObjectList();

    А потом выводим
    Код (PHP):
    1. <select name="test">
    2. <?php
    3. if ($this->data) {
    4. $id = 3; //пусть это id элемента, которому надо присвоить класс
    5. foreach ($this->data as $k=>$v) {
    6. ?>
    7. <option value="<?php echo $v->id ?>" <?php echo ( $v->id == $id ) ? ' class="default-value" ' : '' ?> ><?php echo $v->name ?> </option>
    8. <?php }  } ?>
    9. </select>


    Если надо сделать типа <option value="0">Выберите</option>, то
    Код (PHP):
    1. $data[] = JHTML::_('select.option',  '0', "Выберите", 'id', 'name' ); //Добавляем option
    2.   echo JHTML::_('select.genericlist', $data, 'test', 'class="inputbox"','id', 'name' );
     
    Последнее редактирование: 13.04.2011
  6. Offline

    nigredo Недавно здесь

    Регистрация:
    06.02.2009
    Сообщения:
    16
    Симпатии:
    0
    Пол:
    Мужской
    Итак, после долгого копания в классах JHTML проблема была решена.

    Option создаем как обычно, только 3-м параметром указываем массив с ключами:

    option.attr = 'название атрибута',
    attr='значение атрибута'

    Код (PHP):
    1. JHTML::_( 'select.option', $value, $name, array('option.attr'=>'class', 'attr'=>'class="default-val"'));


    Когда создаем select третий параметр, указываем в виде массива со след. возможными ключами:

    id='id списка, если нужно, по-умолчанию используется имя'
    list.attr = 'атрибуты списка',
    list.select = 'выбранный элемент(selected)',
    list.translate='использовать JTEXT или нет'
    option.attr = 'атрибут option',
    option.value= 'поле, которое будет использоваться для value option'а, по-умолчанию value',
    option.text= 'поле, которое будет использоваться для text option'а, по-умолчанию text',

    Код (PHP):
    1. JHtml::_('select.genericlist',$options,$name,
    2.                     array(
    3.                             'list.attr' => ' class="ajax-select" alt="cities" style="float: left;"',
    4.                             'option.attr' => 'атрибут, который будет использоваться в option',
    5.                             'list.select' =>$selected
    6.                     )
    7. );


    P.S. функция создания select должна иметь не больше 3 аргументов

    Если кто-то нашел избыточность, делитесь идеями.
     
  7. Tureckiy
    Offline

    Tureckiy специалист

    Регистрация:
    11.04.2009
    Сообщения:
    423
    Симпатии:
    30
    Пол:
    Мужской
    нет, это правильный вариант написания селектов - проще некуда!
     

Поделиться этой страницей

Загрузка...