2010-02-16 56 views
5

如何在今年之前生成給定年份的選擇列表? 我這樣做如何在Smarty中生成年份?

{assign var=thisyear value=$smarty.now|date_format:"%Y"} 
{if !$firstyear} 
{assign var=firstyear value="2003"} 
{/if} 

{if !$loop}{assign var=loop value=$thisyear}{/if} 
<select name='{$id|default:year}' id={$id|default:year} style='width:70px;'> 

{section name=yearValue max=$year start=$firstyear loop=$thisyear step=-1} 
    <option{if $year==$smarty.section.yearValue.index} selected="selected"{/if}>{$smarty.section.yearValue.index}</option> 
{/section} 

</select> 

unfotunatly這將產生0至2003年,但我想,它產生2003至2010年我怎麼能做到這一點?

回答

1
{section name=years start=2003 loop=2011 step=1} 
    {$smarty.section.years.index} 
{/section} 
+0

但是我每年都必須做出修改 – streetparade

+2

從PHP分配'start'和'loop'值,而不是結合複雜的模板邏輯來做同樣的事情。 – karim79

0
{assign var=firstyear value="2003"} 
{assign var=thisyear value=$smarty.now|date_format:"%Y"} 

{section name=yearValue start=$thisyear loop=$firstyear step=-1} 
    {$smarty.section.yearValue.index} 
{/section} 
4
{assign var=thisyear value=$smarty.now|date_format:"%Y"} 
    {assign var=endYear value=$thisyear+6} 
    <select> 
     {section name=yearValue start=$thisyear loop=$endYear step=1}<option>{$smarty.section.yearValue.index}</option> 
     {/section} 
    </select> 
0

{html_select_date START_YEAR = 「+ 0」 END_YEAR = 「+ 0」 field_order = 「DMY」 day_value_format = 「%02D」}

如果你想在今年只設置在開始年,如果你給像減值「-1」的價值也比它顯示前一年。

相關問題