聪明的部分循环

时间:2012-01-19 09:54:33

标签: php 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}  感谢。

2 个答案:

答案 0 :(得分: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 :(得分: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的使用有些偏差。它应该用作索引。