0

ネストされたsmartyforeachループがあります。divで連続番号の出力を取得しようとしています(例を参照) 。内部配列でキーまたはインデックスまたは.iterationを使用しても、希望どおりに機能しません。何が起こっているかはわかりますが、外側のループのすべてのブランチでリセットを続ける、部分的なカウントではなく、全体的な実行カウントを維持する方法が必要です。私は成功せずに多くのことを試みました。誰か助けてもらえますか?とても有難い。

{foreach from=$children item='child'}

{if $child.show_in_menu}


{* loop through grandchildren *}

{foreach from=$child item='grandchild'  name='grandchildrenpages' key=k}

{if $grandchild.show_in_menu}


<div class="view-{$k}"></div>

{/if}
{/if}
{/foreach}
{/if}
{/foreach}

必要な出力

<div class="view-1"></div>
<div class="view-2"></div>
<div class="view-3"></div>
<div class="view-4"></div>
<div class="view-5"></div>
<div class="view-6"></div>
<div class="view-7"></div>
<div class="view-8"></div>

Currentoutput

<div class="view-0"></div>
<div class="view-1"></div>
<div class="view-2"></div>
<div class="view-1"></div>
<div class="view-2"></div>
<div class="view-5"></div>
<div class="view-6"></div>
<div class="view-7"></div>
4

1 に答える 1

0

{counter}を使用します。

{foreach from=$children item='child'}
        {if $child.show_in_menu}
    {foreach from=$child item='grandchild'  name='grandchildrenpages' key=k}
                {if $grandchild.show_in_menu}
        <div class="view-{counter}"></div>
                {/if}
    {/foreach}
        {/if}
{/foreach}

(ところで、あなたの例には必要以上に{/ if}が1つありますが、これはタイプミスだと思います

于 2012-05-31T07:23:53.900 に答える