我正在尝试使用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>
请帮我解决这个问题。
答案 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以来已经有一段时间了。