2012-01-19 28 views
7

我想獲得一個循環之後...Smarty的部分環路

{$product.min_val} //2 
{$product.max_val} //8 

,我試圖下面...

{section name=val start=$product.min_val loop=$product.max_val step=0} 
<p id="{$smarty.section.val.index}">{$smarty.section.val.index}</p> 
{/section} 

它打印以下...

<p id="2">2</p> 
<p id="3">3</p> 
<p id="4">4</p> 
<p id="5">5</p> 
<p id="6">6</p> 
<p id="7">7</p> 

您可能已經注意到其缺失<p id="8">8</p>根據{$product.max_val} 謝謝。

回答

8

是次數的部分將循環,所以你需要:

{section name=val start=$product.min_val loop=$product.max_val+1} 
<p id="{$smarty.section.val.index}">{$smarty.section.val.index}</p> 
{/section} 
+1

實際上,'loop'是它運行的次數,而不是'max'界限:http://www.smarty.net/docsv2/en/language.function.section.tpl –

+0

謝謝,修正:) – xpapad

0

當輸出奇怪的是,你的輸入是奇怪了。首先,我假設您想要打印下列值:

2,3,4,5,6,7,8;這些是7號

所以的確,start是正確的,必須是2。但是,loop必須是7或更一般的$product.max_val - $product.min_val + 1。而0的步長完全是奇怪的。

這應該工作:

{section name=val start=$product.min_val loop=($product.max_val - $product.min_val + 1) step=1} 
    <p id="{$smarty.section.val.index}">{$smarty.section.val.index}</p> 
{/section} 

雖然你的val使用是有點過,我認爲。它應該被用作索引。