Smarty section

ここではSmartyのsection関数を解説していきます。

smarty

基本構文

{section name=i loop=5}
    {$smarty.section.i.index}、
{/section}

出力結果は「0、 1、 2、 3、 4、」 になります。
name=i
sectionに名前をつけて使用します。
loop=5
ループする回数を指定します。

初期値を設定する

{section name=i start=1 loop=5}
    {$smarty.section.i.index}、
{/section}

出力結果は「1、 2、 3、 4、 」 になります。

ステップを設定する

{section name=i start=1 loop=10 step=2}
    {$smarty.section.i.index}、
{/section}

出力結果は「1、 3、 5、 7、 9、 」 になります。

ステップに逆順を設定する

{section name=i loop=10 step=-2}
    {$smarty.section.i.index}、
{/section}

出力結果は「9、 7、 5、 3、 1、 」 になります。

配列を渡しループさせる

php

<?php
    $data = array(1,2,3,4,5,6,7,8,9);
    $smarty->assign('data', $data);

tpl

{section name=i loop=$data}
    {$data[i]}、
{/section}

出力結果は「1、 2、 3、 4、 5、 6、 7、 8、 9、 」になります。

連想配列を渡しループさせる

php

<?php
    $data = array(
        array(
            name => 'Tanaka',
            tel => '000-0000-0000'
        ),   
        array(
            name => 'Yamada',
            tel => '111-1111-1111'
        ),
    );
    $smarty->assign('data', $data);

tpl

{section name=i loop=$data}
    <p>
        {$data[i].name}<br />
        {$data[i].tel}<br />
    </p>
{/section}

出力結果

<p>
    Tanaka<br />
    000-0000-0000<br />
</p>
<p>
    Yamada<br />
    111-1111-1111<br />
</p>

$data[i][‘name’]とはアクセスできずエラーになってしまうので注意してください。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

*

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください