Smarty为这种情况做出反击

时间:2014-06-06 18:26:14

标签: php smarty

聪明的我已经采取jQuery使一些文本fadein fadeout。所以在smarty中我希望在foreach循环中有一个计数器值。

这将计算帖子,并且对于每个增量,它将添加类激活,以便它将开始显示。所以现在我想要这样的东西。但我不知道如何在smarty中设置增量计数器。

<div class="test">
{foreach from=$sliderValues item=row}
$i = 0;
while($sliderValues) {
$i++;
  if($i==1) {
    $class= 'active';
  }
  else {
    $class= '';
  }
  <div class="example '.$class.' ">something</div>
}
{/foreach}
</div>

所以,如果有人告诉我如何制作这样的智能计数器。任何帮助和建议都会非常明显。

2 个答案:

答案 0 :(得分:1)

当Smarty将模板编译成PHP时,你实际上可以在你的模板中使用一些PHP,但不推荐使用它,而且很难看。

您要找的是{assign}功能:

  • 分配起始值:{assign var =“i”value =“0”}
  • 要增加:{assign var =“i”value =“'$ i + 1'”}

然后你可以用标准Smarty {if $ i == 1}

检查变量i

详细了解smarty assign

答案 1 :(得分:0)

如果要将“active”类添加到第一行,则只能使用此代码。没有额外的i

<div class="test">
    {foreach from=$sliderValues item='row' name='f'}
        <div class="example{if $smarty.foreach.f.first} active{/if}">something</div>
    {/foreach}
</div>

如果您希望/需要在其他情况下使用i,则必须在 foreach之前将其设置为0 。在循环中,您只需使用{assign var='i' value=$i+1}