0

我正在使用 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>

有没有更简单的?

4

1 回答 1

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>使用固定宽度的 a 而不是表格。在这个 div 中,使用定位在一行中的实体,例如<span>宽度是 <div>. 然后每个 <span>将按顺序显示,每个 4 有一个换行符<span>

$output_data = array('1', '2', '3', '4', '5', '6', '7', '8');
$TBS->MergeBlock('od', $output_data);
于 2014-03-10T22:30:32.030 回答