2010-02-16 5 views
5

Wie kann ich eine Auswahlliste mit dem gegebenen Jahr bis zu diesem Jahr generieren? i tat diesWie Jahr in Smarty generieren?

{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 erzeugt dies 0 bis 2003, aber ich möchte, dass es 2003 bis 2010 erzeugt, wie kann ich das tun?

Antwort

4

Werfen Sie einen Blick auf html_select_date

+0

Danke für die Information – streetparade

+0

Gern geschehen :-) – Htbaa

+0

Es ist schade, dass Sie keinen benutzerdefinierten Namen für die Auswahl mit diesem Befehl festlegen können; – Szorstki

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

Aber jedes Jahr muss ich Änderungen vornehmen – streetparade

+2

Weisen Sie die 'start' und' loop' Werte von PHP, anstatt komplexe Template-Logik, um das gleiche zu tun. – 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"}

Wenn Sie möchten, dass dieses Jahr nur für das Jahr beginnt, wenn Sie einen Minuswert wie "-1" eingeben, wird das Jahr auch angezeigt.