smarty template engine
Friday, July 04, 2008  
download | documentation | faq | forum | mailing lists | changelog | contribs 


search for in the  


{html_options}

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

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

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

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

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

Пример 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>

Пример 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}




 

credits 

Smarty Copyright © 2002-2008 New Digital Group, Inc.
All rights reserved.
Last updated: Tue Feb 12 09:11:00 2008 CST