我想知道是否有人可以帮助我。我正在使用PodHawk - 一个基本的播客cms,我希望管理区域文件选择按顺序显示我的文件 - 按名称。
select / option下拉列表使用此代码,是否有一种简单的方法可以按名称顺序显示下拉列表。我已经搜索过,但在Smarty文档中找不到任何内容,但我可能使用了错误的术语!
{foreach from=$upload item=file}
<option value="{$file|escape:'url'}">{$file}</option>
{/foreach}
非常感谢抢劫
非常感谢下面的海报 -
{$upload|@sort:$smarty.const.SORT_NUMERIC}
{foreach from=$upload item=file}
<option value="{$file|escape:'url'}">{$file}</option>
{/foreach}
答案 0 :(得分:1)
cgwyllie忽略了asort()返回一个布尔值,而不是有序数组。所以他的方法不起作用。由于未使用索引,因此不需要(ssociative)排序。
{$_foo = $upload|sort:$smarty.const.SORT_LOCALE_STRING}
{foreach $upload as $file}
<option value="{$file|escape:'url'}">{$file|escape:"html"}</option>
{/foreach}
应该做的伎俩。确保你真的需要$ file urlencoded,否则改变escape:“url”来逃避:“html”。
(以上是Smarty3语法)
答案 1 :(得分:0)
如果变量$upload
包含文件名数组,则应该可以将PHP asort
函数(http://php.net/asort)作为smarty修饰符应用于数组。
{foreach from=$upload|@asort item=file}
<option value="{$file|escape:'url'}">{$file}</option>
{/foreach}
需要@符号将修饰符作为一个整体应用于数组,而不是每个单独的元素。 (见http://www.smarty.net/docsv2/en/language.modifiers.tpl)
如果数组的数据结构比字符串更复杂,则以下讨论对您有用:http://www.smarty.net/forums/viewtopic.php?t=1079&postdays=0&postorder=asc&start=0
修改强>
正如rodneyrehm所提到的,尽管海报在http://www.smarty.net/forums/viewtopic.php?t=1079&postdays=0&postorder=asc&start=0
找到了令人满意的解决方案,但这个解决方案并不完全正确。