What is Smarty?
Why use it?
Use Cases and Work Flow
Syntax Comparison
Template Inheritance
Best Practices
Crash Course
You may use the Smarty logo according to the trademark notice.
For sponsorship, advertising, news or other inquiries, contact us at:
{html_table}
是一个
自定义函数,可使用数组形式的数据来创建一个HTML的<table>
.
参数名称 | 类型 | 必选参数 | 默认值 | 说明 |
---|---|---|---|---|
loop | array | Yes | n/a | 循环赋值的数组 |
cols | mixed | No | 3 | 表格的列数,或者是逗号分隔的列头文字列表,或是列头文字的数组。 如果cols属性为空,但设置了rows,将以rows数量和显示元素的总数进行计算得出列数, 以便每列能显示全部的元素。 如果rows和cols都设置了,那么cols会忽略默认值3. 如果设置cols为一个列表或数组,那么列数将取决于列表或数组的元素个数。 |
rows | integer | No | empty | 表格的行数。如果设置为空,但设置了cols,那么将以cols数量和显示元素的总数进行计算得出行数, 以便每行能显示全部的元素。 |
inner | string | No | cols | 显示元素的循环方向。cols意味着元素将按“一列一列”地显示。 而rows意味着元素将“一行一行”地显示。 |
caption | string | No | empty | 表格中<caption> 属性值 |
table_attr | string | No | border="1" |
<table> 标签的属性 |
th_attr | string | No | empty |
<th> 标签的属性
(循环) |
tr_attr | string | No | empty |
<tr> 标签的属性
(循环) |
td_attr | string | No | empty |
<td> 标签的属性
(循环) |
trailpad | string | No | | 在最后行空单元格中填充的字符(如果有的话) |
hdir | string | No | right | 每行显示的方向。可以设置: right (从左到右), 和 left (从右到左) |
vdir | string | No | down | 每列显示的方向。可以设置: down (上到下), up (下到上) |
cols
属性决定表格可以显示多少列。
table_attr
, tr_attr
和 td_attr
的值决定了<table>
, <tr>
和 <td>
标签的数量。
如果tr_attr
或者 td_attr
是一个数组,
那么它们的值将被循环交替使用。
trailpad
是在最后行空单元格中填充的字符(如果有的话)。
Example 8.19. {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赋值到模板并且显示表格。下面是各种输出:
{**** Example One ****} {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> {**** Example Two ****} {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> </td><td> </td><td> </td></tr> </tbody> </table> {**** Example Three ****} {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> </td><td> </td><td> </td></tr> </tbody> </table>