TinyButStrong PHP模板多列表

时间:2014-03-10 10:00:25

标签: php tinybutstrong

我正在使用TBS示例代码:

  include_once('tbs_class.php');
  $TBS = new clsTinyButStrong;
  $TBS->LoadTemplate('template.htm');

  $list = array('X','Y','Z');
  $TBS->MergeBlock('blk', $list);
  $TBS->Show();

但不是下面的一列表

<table>
  <tr><td>X</td></tr>
  <tr><td>Y</td></tr>
  <tr><td>Z</td></tr>
</table>

我想获得一个多列(例如4列)表。

到目前为止,我发现的唯一可行代码是:

$number_of_columns = 4;
$number_of_rows    = 2;
$number_of_items = $number_of_columns * $number_of_rows;
$output_data = array('1', '2', '3', '4', '5', '6', '7', '8');

$TBS->MergeBlock('col','num',$number_of_columns); // expand columns
$TBS->MergeBlock('od',array_slice($output_data,0,$number_of_items));

和模板

<table border="1">
                <tr>[od;block=tr;serial]<td>[od_[col.val;block=td].val;block=td]</td></tr>
</table>

有什么更简单的吗?

1 个答案:

答案 0 :(得分:1)

如果您要做的是按顺序显示项目

 1  2  3  4
 5  6  7  8
 9 10 11

然后你可以:

1)就像你的例子一样,使用TBS中的串行模式。这是该参数的目的,您的示例非常简单。

2)更改数据源$output_data中的项目,以便每行有一条记录。

脚本:

$data = array(
   array(1, 2, 3, 4),
   array(5, 6, 7, 8),
   array(9, 10, 11),
);
$TBS->MergeBlock('od', $data);

模板:

<table>
   <tr>
     <td>[id.0;block=tr]</td>
     <td>[id.1;noerr]</td>
     <td>[id.2;noerr]</td>
     <td>[id.3;noerr]</td>
   </tr>
</table>

3)不要更改数据,而是更改HTML模板。 使用具有固定宽度的<div>而不是表格。在此div中,使用位于行中的实体,例如<span>,其宽度是<div>的四分之一。然后,每个<span>将按顺序显示,每4 <span>换行。

$output_data = array('1', '2', '3', '4', '5', '6', '7', '8');
$TBS->MergeBlock('od', $output_data);