Get Smarty

Donate

Paypal

Smarty Icon

You may use the Smarty logo according to the trademark notice.

Smarty Template Engine Smarty Template Engine

For sponsorship, advertising, news or other inquiries, contact us at:

Sites Using Smarty

Advertisement

{html_options}

{html_options} является пользовательской функцией, которая создает группу HTML-тэгов option по указанной информации. Также она обеспечивает выбор элемента по умолчанию. Параметры values и output являются обязательными, если не указан атрибут options.

Имя атрибута Тип Обязателен По умолчанию Описание
values массив Да, если не указан атрибут options n/a массив значений для выпадающего списка
output массив Да, если не указан атрибут options n/a массив названий для выпадающего списка
selected string/array Нет пусто Выбранный элемент(ы)
options ассоциативный массив Да, если не указаны атрибуты values и output n/a ассоциативный массив значений и названий
name string Нет пусто Название выпадающего списка

Если переданное значение - массив, оно будет принято за HTML-тэг <optgroup> и отображено в виде групп. В элементе <optgroup> поддерживается рекурсия. Весь вывод совместим с XHTML.

Если указан необязательный параметр name, список будет окружен тэгом <select name="groupname"></select>. В противном случае будут сгенерированы лишь элементы <option>.

Все параметры, которые не указаны выше, выводятся в виде пар name/value в тэге <select>. Если необязательный параметр name не указан, они игнорируются.

Example 8.12. {html_options}

Пример №1:


<?php

$smarty->assign('cust_ids', array(1000,1001,1002,1003));
$smarty->assign('cust_names', array(
                              'Joe Schmoe',
                              'Jack Smith',
                              'Jane Johnson',
                              'Charlie Brown'));
$smarty->assign('customer_id', 1001);

?>

  

Шаблон:


<select name="customer_id">
   {html_options values=$cust_ids output=$cust_names selected=$customer_id}
</select>

  

Пример №2:


<?php

$smarty->assign('cust_options', array(
                                1000 => 'Joe Schmoe',
                                1001 => 'Jack Smith',
                                1002 => 'Jane Johnson',
                                1003 => 'Charlie Brown')
                                );
$smarty->assign('customer_id', 1001);

?>

  

Шаблон:


   {html_options name=customer_id options=$cust_options selected=$customer_id}

  

Результат выполнения обоих примеров будет следующим:


<select name="customer_id">
    <option label="Joe Schmoe" value="1000">Joe Schmoe</option>
    <option label="Jack Smith" value="1001" selected="selected">Jack Smith</option>
    <option label="Jane Johnson" value="1002">Jane Johnson</option>
    <option label="Charlie Brown" value="1003">Charlie Brown</option>
</select>

  

Example 8.13. {html_options} - Пример с базой данных (к примеру, PEAR или ADODB):


<?php

$sql = 'select type_id, types from contact_types order by type';
$smarty->assign('contact_types',$db->getAssoc($sql));

$sql = 'select contact_id, name, email, contact_type_id
         from contacts where contact_id='.$contact_id;
$smarty->assign('contact',$db->getRow($sql));

?>

  

Шаблон:


<select name="type_id">
    <option value='null'>-- none --</option>
    {html_options options=$contact_types selected=$contact.type_id}
</select>

  

См. также {html_checkboxes} и {html_radios}

Comments
No comments for this page.

Advertisement