Вместо того, чтобы циклом формировать из тегов список, удобно воспользоваться API Joomla.
echo JHTML::_( 'select.genericlist', $this->zayavki, 'zayavki', null, $key = 'id', $text = 'title');
в общем виде это выглядит так:
function genericlist( $arr, $name, $attribs = null, $key = 'value', $text = 'text', $selected = NULL, $idtag = false, $translate = false )
$arr - это массив объектов с записями, данные для списка по умолчанию это value и text, если выборка делалась из таблицы где нужные для списка поля id и title, то это указывается с помощью аргументов $key и $text
$attribs - это именованный массив с атрибутами тега select
Чтобы добавить в начало списка дополнительные элементы, делаем так:
$obj = new stdClass; $obj->id = 0; $obj->title = 'select item'; array_unshift($this->zayavki, $obj);
В данном случае у нас свойства объекта id и title, по умолчанию это value и text.
Формировать элементы списка можно еще так:
$items[] = JHTML::_('select.option', $value = '0', $text= JText::_( 'SELECT_ITEM' ), 'id', 'title');
Определение функции option:
public static function option($value, $text = '', $optKey = 'value', $optText = 'text', $disable = false)
Также добавляем если нужно дополнительные элементы к массиву и затем склеиваем получившийся массив с имеющимся массивом для списка:
$this->zayavki = array_merge($items, $this->zayavki);
Есть еще одна функция - options:
public static function options($arr, $optKey = 'value', $optText = 'text', $selected = null, $translate = false)
Ее можно использовать так:
$html = '<select name="zayvki" id="zayvki">';
$html .= JHTML::_('select.options', $this->zayavki, 'id', 'title');
$html .= '</select>';
Функции genericlist, options и option определены в файле libraries\joomla\html\html\select.php, так что, если что можно еще там посмотреть, какие аргументы передаются и как используются в функциях.