Smarty是什么?
为什么使用Smarty?
使用案例和工作流
语法比较
模板继承
最佳实践
速成课程
{html_table}
是一个自定义函数,它可以将数据数组转储到HTML<table>
中。
属性名称 | 类型 | 必需 | 默认值 | 说明 |
---|---|---|---|---|
loop | 数组 | 是 | 不适用 | 循环使用的的数据数组 |
cols | 混合数据 | 否 | 3 | 表格中的列数或用逗号分隔的列标题名称列表,或列标题名称数组。如果cols属性为空,但提供了行,则根据行数和要显示的元素数来计算cols数,刚好足以显示所有元素。如果未提供行和cols,则cols默认为3。如果作为列表或数组提供,则根据列表或数组中的元素数来计算列数。 |
rows | 整数 | 否 | 空 | 表格中的行数。如果rows属性为空,但提供了cols,则根据cols数和要显示的元素数来计算行数,刚好足以显示所有元素。 |
inner | 字符串 | 否 | cols | 环形数组中连续元素在循环中的方向。cols表示按列显示元素。rows表示按行显示元素。 |
caption | 字符串 | 否 | 空 | 用于表格<caption> 元素的文本 |
table_attr | 字符串 | 否 | border="1" | <table> 标记的属性 |
th_attr | 字符串 | 否 | 空 | <th> 标记的属性(数组循环使用) |
tr_attr | 字符串 | 否 | 空 | <tr> 标记的属性(数组循环使用) |
td_attr | 字符串 | 否 | 空 | <td> 标记的属性(数组循环使用) |
trailpad | 字符串 | 否 | | 在最后一行的尾部单元格中填充的值(如果有的话) |
hdir | 字符串 | 否 | right | 每个要渲染的行方向。可能的值:right(从左到右),以及left(从右到左) |
vdir | 字符串 | 否 | down | 每个要渲染的列方向。可能的值:down(从上到下),up(从下到上) |
cols
属性决定表中会有多少列。
table_attr
、tr_attr
和td_attr
值决定给出 <table>
、<tr>
和<td>
标签的属性。
如果tr_attr
或td_attr
为数组,则它们会循环。
trailpad
是在最后一行表格中存在尾部单元格时放进去的值(如果存在)。
示例 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>