{html_table}

    {html_table}是一个定制函数,用来将一组值数组输出为一个HTML的<table>

属性名 类型 必需? 缺省 描述
looparrayYesn/a 用来循环的数据数组
colsmixedNo3 表格中列数,或者是一个用逗号分割的列头的名称,或者列头名称的数组。如果cols属性为空,但是给出了rows,那么列数将根据行数以及元素的个数来计算以显示足够多的列数来显示所有数据。如果rows和cols都为空,那么cols缺省为3。如果给出一个列表或数组,列数由列表或数组中元素的个数决定。
rowsintegerNoempty 表格中的行数。如果rows属性为空,但是给出了cols,那么行数由列数和要显示的元素的数量计算以显示足够多的行数来显示所有数据。
innerstringNocols 循环数组中后一个元素显示的方向。cols意味着数据按列显示。而rows意味着数据按行显示。
captionstringNoempty 表格的<caption>元素使用的文本
table_attrstringNoborder="1" <table>标记的属性
th_attrstringNoempty <th>标记的属性(数组将被循环使用)
tr_attrstringNoempty <tr>标记的属性(数组将被循环使用)
td_attrstringNoempty <td>标记的属性(数组将被循环使用)
trailpadstringNo&nbsp; 最后一行结尾单元格(如果有的话)的添加值
hdirstringNoright 每行渲染的方向。可用值为:right(左到右)和left(右到左)
vdirstringNodown 每列渲染的方向。可用值为:down(顶到底)或者up(底到顶)

例子8-22. {html_table}

<?php
$smarty
->assign'data', array(1,2,3,4,5,6,7,8,9) );
$smarty->assign'tr', array('bgcolor="#eeeeee"','bgcolor="#dddddd"') );
$smarty->display('index.tpl');
?>

    由PHP赋值的变量可以由下面这三个例子显示。每个例子显示了模板和相应的输出。

{**** 例子一 ****}
{html_table loop=$data}

<table border="1">
<tbody>
<tr><td>1</td><td>2</td><td>3</td></tr>
<tr><td>4</td><td>5</td><td>6</td></tr>
<tr><td>7</td><td>8</td><td>9</td></tr>
</tbody>
</table>


{**** 例子二 ****}
{html_table loop=$data cols=4 table_attr='border="0"'}

<table border="0">
<tbody>
<tr><td>1</td><td>2</td><td>3</td><td>4</td></tr>
<tr><td>5</td><td>6</td><td>7</td><td>8</td></tr>
<tr><td>9</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td></tr>
</tbody>
</table>


{**** 例子三 ****}
{html_table loop=$data cols="first,second,third,fourth" tr_attr=$tr}

<table border="1">
<thead>
<tr>
<th>first</th><th>second</th><th>third</th><th>fourth</th>
</tr>
</thead>
<tbody>
<tr bgcolor="#eeeeee"><td>1</td><td>2</td><td>3</td><td>4</td></tr>
<tr bgcolor="#dddddd"><td>5</td><td>6</td><td>7</td><td>8</td></tr>
<tr bgcolor="#eeeeee"><td>9</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td></tr>
</tbody>
</table>