| Nome do Atributo | Tipo | Obrigatório | Padrão | Descrição |
|---|---|---|---|---|
| values | array | Sim, a menos que usando atributos de options | n/a | uma matriz de valores para o menu dropdown |
| output | array | Sim, a menos que usando atributos de options | n/a | uma matriz de saída para o menu dropdown |
| selected | string/array | Não | empty | o elemento do options selecionado |
| options | associative array | Sim, a menos que usando values e output | n/a | uma matriz associativa de output e output |
| name | string | Não | empty | nome do grupo selecionado |
html_options é uma função personalizada que cria um grupo html option com os dados fornecidos. Ela está atenta de quais itens estão selecionados por padrão. Atributos obrigatórios são 'values' e 'output', a menos que você use options no lugar.
Se um valor dado é um array, ele será tratado como um OPTGROUP html, e mostrará os grupos. Recursividade é suportada pelo OPTGROUP. Todas as saídas são compatíveis com XHTML.
Se o atributo opcional name é dado, as tags <select name="groupname"></select> irão incluir a lista de opções dentro dela. Caso contrário apenas a lista de opções é gerada.
Todos os parâmetros que não estão na lista acima são exibidos como nome/valor dentro de <select>-tag. Eles são ignorados se o opcional name não é fornecido.
Example 8.8. html_options
index.php:
require('Smarty.class.php');
$smarty = new Smarty;
$smarty->assign('cust_ids', array(1000,1001,1002,1003));
$smarty->assign('cust_names', array('Joe Schmoe','Jack Smith','Jane
Johnson','Carlie Brown'));
$smarty->assign('customer_id', 1001);
$smarty->display('index.tpl');
index.tpl:
<select name=customer_id>
{html_options values=$cust_ids selected=$customer_id output=$cust_names}
</select>
index.php:
require('Smarty.class.php');
$smarty = new Smarty;
$smarty->assign('cust_options', array(
1001 => 'Taniel Franklin',
1002 => 'Fernando Correa',
1003 => 'Marcelo Pereira',
1004 => 'Charlie Brown'));
$smarty->assign('customer_id', 1001);
$smarty->display('index.tpl');
index.tpl:
<select name=customer_id>
{html_options options=$cust_options selected=$customer_id}
</select>
OUTPUT: (both examples)
<select name=customer_id>
<option value="1000">Taniel Franklin</option>
<option value="1001" selected="selected">Fernando Correa</option>
<option value="1002">Marcelo Pereira</option>
<option value="1003">Charlie Brown</option>
</select>
