使用CodeIgniter生成自定义布局的HTML表格生成器

3

CI table->generate($data1, $data2, $data3) 会以一个简单表格的形式来输出我的数据:

<table>
    <tr>
        <td>data1</td>
        <td>data2</td>
        <td>data3</td>
    </tr>
</table>

如果我需要一个具有多个$vars复杂单元格布局,该怎么办?
$data1 = array('one', 'two', 'three'); 

我希望你能提供类似以下内容的方案:

我需要一种这样的解决方案:

<table>
    <tr>
        <td>
            <div class="caption">$data1[0]</div>
            <span class="span1">$data1[1] and here goes <strong>$data1[2]</strong></span>
        </td>
        <td>...</td>
        <td>...</td>
    </tr>
</table>

我应该如何编写这部分代码呢?

目前,我只是在模型中生成 td 的内容,然后调用 generate()。但这意味着我的单元格的 HTML 位于模型中,而我希望将其保留在视图中。

2个回答

2
我建议您创建一个视图,将生成td结构的数据传递给它。捕获视图的输出并将其传递给表格生成器。这样可以保持视图中的结构,尽管是不同的视图。

太棒了!我不知道你可以将load->view()加载到变量中! - eugene.inspired

0
Hailwood的回答并不是最好的方法。HTML表格类在add_row方法上有一个数据元素。因此,代码应该是:
$row = array();
$row[] = array('data' => "<div class='caption'>{$data1[0]}</div><span class='span1'>{$data1[1]} and here goes <strong>{$data1[2]}</strong></span>");
$row[] = $col2;
$row[] = $col3;

$this->table->add_row($row)
echo $this->table->generate();

作为旁注,将表格中的一个类命名为“标题”在语义上会造成混淆,因为表格本身已经有了“caption”标签。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接