首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >TinyButStrong PHP模板化多层表

TinyButStrong PHP模板化多层表
EN

Stack Overflow用户
提问于 2014-03-10 10:00:25
回答 1查看 860关注 0票数 0

我使用的是TBS示例代码:

代码语言:javascript
复制
  include_once('tbs_class.php');
  $TBS = new clsTinyButStrong;
  $TBS->LoadTemplate('template.htm');

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

但是,而不是如下所示的一列表

代码语言:javascript
复制
<table>
  <tr><td>X</td></tr>
  <tr><td>Y</td></tr>
  <tr><td>Z</td></tr>
</table>

我想要一个多列表(例如,4列)。

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

代码语言:javascript
复制
$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));

并作为模板

代码语言:javascript
复制
<table border="1">
                <tr>[od;block=tr;serial]<td>[od_[col.val;block=td].val;block=td]</td></tr>
</table>

还有更简单的吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-03-10 22:30:32

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

代码语言:javascript
复制
 1  2  3  4
 5  6  7  8
 9 10 11

然后你就可以:

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

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

剧本:

代码语言:javascript
复制
$data = array(
   array(1, 2, 3, 4),
   array(5, 6, 7, 8),
   array(9, 10, 11),
);
$TBS->MergeBlock('od', $data);

模板:

代码语言:javascript
复制
<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>中断一行。

代码语言:javascript
复制
$output_data = array('1', '2', '3', '4', '5', '6', '7', '8');
$TBS->MergeBlock('od', $output_data);
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/22297013

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档