Это старый вопрос, на который уже есть принятый ответ, но в основном это была просто ссылка.Я разместил это в качестве более полного ответа, чтобы избежать того, что будущим посетителям придется перелистывать документы, чтобы найти соответствующий пример.
In Smarty 2 ,Циклы создаются с помощью тега {section}
, который охватывает довольно широкий спектр вариантов использования.Чтобы написать эквивалент цикла PHP for()
, используется следующий синтаксис:
<select>
{section name="i" start=1950 loop=2001}
<option value="{$smarty.section.i.index}">{$smarty.section.i.index}</option>
{/section}
</select>
Обратите внимание, что свойство loop
относится к числу, при котором Smarty выйдет из цикла, поэтомудолжно быть на 1 больше, чем последнее число, которое вы хотите повторить.
ADDENDUM: Хотя это не имеет прямого отношения к вопросу (касающемуся Smarty 2), оноСтоит отметить, что Smarty 3 ввел тег {for}
, поэтому теперь вы можете делать следующее, что намного проще:
<select>
{for $i=1950 to 2000}
<option value="{$i}">{$i}</option>
{/for}
</select>