重要なお知らせ

「教えて! goo」は2025年9月17日(水)をもちまして、サービスを終了いたします。詳細はこちら>

【GOLF me!】初月無料お試し

$rs[0][data1] = 1;
$rs[1][data1] = 2;
$rs[2][data1] = 3;
というように行単位で配列$rsに入っているとし、

1 2
3
というようにSmartyを使用して表示したいのですが、
Smartyでは実現不可能でしょうか?
section内で、PHPでいうi++;のように
インデックス番号を次に進められれば
可能だとは思うのですが・・
以下で、挫折しました。

{section name=a start=0 loop=$rs step=2}
{$rs[a].data1} {$rs[a].data1}<br>
{/section}

A 回答 (1件)

if使うとか。

他にもやりかたありそうだが。

{section name=a start=0 loop=$rs}
{$rs[a].data1}
{if $smarty.section.a.index % 2 != 0}<br>{/if}
{/section}
    • good
    • 0
この回答へのお礼

なるほど。確かにそれであれば実現できますね。
ただ、本来ニ列のものを一列に書く事になりますので
デザインが崩れてしまい悩んでおります。
例えばテーブルだと以下な感じに出力したい場合、

<tr><td>1</td><td>2</td></tr>
<tr><td>3</td><td></td></tr>

テンプレートは、
{loop name=rs}
<tr><td>rs.a[i]</td><td>rs.a[i+1]</td></tr>
{/loop}
な感じに書けると理想ですよね。他のテンプレートでは
できたような気がしますが、Smartyが苦手な点でしょうか。

お礼日時:2005/02/10 19:53

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!