Get Smarty

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:

Check reviews of PHP Web Hosting, compatible with Smarty Templates

{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.
Post a Comment
All comments are moderated. Support questions are ignored, use the forums instead.
Author:
Email: (not shown)
What is 1 plus 15? (Are you human?)

Sponsors [info]

Cheap Website Hosting @hostdone.com
Cheap Hosting @HostsVault
email marketing @ActiveCampaign
broadband deals @BroadbandGenie
Best UK Web Hosting @webhost.uk.net
Reliable UK and US Web Hosting @rshosting.com
Cheap US and UK Web Hosting @infrenion.com
I.T Certification Exams @pass-guaranteed.com
Certification Practice Tests @firsttrycertify.com
Certification Practice Exam Questions @ace-it-certifications.com
Broadband Speed Test @broadbandspeed.co.uk
bulk email software @americaint.com