Smarty html_options值属性不起作用

时间:2013-01-16 06:52:42

标签: php templates smarty html-select

我正在尝试使用smarty html_options显示下拉列表。它很好地显示了下拉列表,但输出值为0,1,2,3,4,5。

但我希望价值为100,150,200,250,300,350。

====== PHP =========

$choice_set=array("A","B","C","D","E","F");
$choice_values=array(100,150,200,250,300,350);
$choice=250;

===== SMARTY ======

<select name="location">
{html_options values=$choice_values options=$choice_set selected=$choice}
</select>

请帮我解决这个问题。

1 个答案:

答案 0 :(得分:3)

docs开始,您似乎忘了坚持选择的大小位。此外,它说options需要output(这对我来说似乎是一个非常糟糕的名字)。像这样:

<select name="location" size="{$choice_values|@count}">
    {html_options values=$choice_values output=$choice_set selected=$choice}
</select>

更新:基于杰拉德在评论中的优秀观点。

如果您改为定义关联数组而不是单独的数组,则可以使用options模板值。所以这也有效:

====== PHP =========

$choices = array(100 => "A, 150 => "B", 200 => "C", 250 => "D", 300 => "E", 350 => "F");
$choice=250;

===== SMARTY ======

<select name="location">
    {html_options options=$choices selected=$choice}
</select>

另外,我经常忘记$smarty->assign我的变量,特别是当我进行原型设计或改变某些事情时。在这方面,你可能比我更聪明,但值得仔细检查。

对不起我的疏忽,自从我使用smarty以来已经有一段时间了。