Skip to content

Language function html table

{html_table} 是一个自定义函数,用于将数据数组转换为 HTML 的 <table> 标签。

属性

属性名 必需 描述
loop 要循环遍历的数据数组
cols 表格中的列数,可以是一个数字,也可以是以逗号分隔的列标题名称列表,或者是列标题名称的数组。如果 cols 属性为空,但提供了 rows,则列数将根据行数和要显示的元素数量计算,以确保足够的列来显示所有元素。如果 rowscols 都省略,则默认为 3 列。如果以列表或数组形式给出,则列数将根据列表或数组中的元素数量计算。
rows 表格中的行数。如果 rows 属性为空,但提供了 cols,则行数将根据列数和要显示的元素数量计算,以确保足够的行来显示所有元素。
inner 定义循环数组中连续元素的排列顺序。cols 表示按列显示元素,rows 表示按行显示元素。
caption 用于 <caption> 元素的文本
table_attr <table> 标签的属性(默认为 'border="1"')
th_attr <th> 标签的属性(循环使用数组中的属性)
tr_attr <tr> 标签的属性(循环使用数组中的属性)
td_attr <td> 标签的属性(循环使用数组中的属性)
trailpad 如果有的话,用于填充最后一行中的尾部单元格的值(默认为 ' ')
hdir 每行的渲染方向。可能的值为:right(从左到右)和 left(从右到左)(默认为 'right')
vdir 每列的渲染方向。可能的值为:down(从上到下)和 up(从下到上)(默认为 'down')
  • cols 属性确定表格中的列数。
  • table_attrtr_attrtd_attr 决定 <table><tr><td> 标签的属性。
  • 如果 tr_attrtd_attr 是数组,则会循环使用其中的属性。
  • trailpad 是放置在最后一行表格单元格中的填充值(如果有的话)。

示例

<?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 分配的变量可以通过以下三个示例来显示。每个示例都显示了模板和输出。

示例 1

{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>

示例 2

{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>

示例 3

{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>