-1

我有一个关于使用 PHP 创建 HTML 表的问题。我喜欢一些库通过使用 PHP 组件来处理 SQL 创建、读取、更新和删除 (CRUD) 的方式,这些组件可以执行 CRUD 而无需知道任何 SQL,而是使用 PHP API。

我需要一个工具,我可以用它以同样的方式创建 HTML 表格。我只想使用 PHP 语句创建 HTML 或其他 ML 表。

任何人都可以推荐一个用于使用 PHP 创建 HTML 表格的好工具吗?

提前致谢。

4

1 回答 1

1

确实有这样的工具可以使用 PHP 开发 HTML 表单。

作为 PHP 开发人员,我的第一选择是 PEAR 的HTML_Table. 正如文档所说,“[PEAR 的] HTML_Table 使 HTML 表格的设计变得简单、灵活、可重用和高效。”

使用这个组件很简单,包括表类(来自文件)、实例化新实例、添加正文并开始将行附加到表中,所有这些都使用 PHP 调用。

这是一个显示用户姓名、电子邮件和年龄的表格示例。

此示例假定您已经PEAR安装(安装 PEAR)以及 PEAR 的HTML_Table

首先要做的是包含 PEAR 的HTML_Table

<?php require_once 'path/to/pear/HTML/Table.php'; ?>

您可能还需要包含HTML_Common&PEAR类,因此最好在 PHP 中包含 PEAR 路径include_path

为了解决这个问题以及一般的 PEAR 类加载,请查看PSR-0标准,它是类和文件的 PEAR 命名约定。这在使用自动加载器时可能很有用。

有了可用的类,我们可以创建一个像这样的表:

// Instantiating the table. The first argument is the HTML Attributes of the table element
$table = new HTML_Table(array('class' => 'my-table'), null, true);

请注意,所有参数都是可选的。让我们首先将标题添加到表中:

// Preparing the header array this will go in <table><thead><tr>[HERE..]</tr></thead></table>
$headerRow = array('Name', 'Email', 'Age');
$header = $table->getHeader();
$header->setAttributes(array('class' => 'header-row')); // sets HTML Attributes of the <thead /> element
$header->addRow($headerRow, null ,'th');

到目前为止,该表的 HTML 如下所示:

<table class="my-table">
    <thead class="header-row">
        <tr>
            <th>Name</th>
            <th>Email</th>
            <th>Age</th>
        </tr>
    </thead>
</table>

让我们添加一个主体和一些行:

// This is array of arrays that will represent the content added to the table as table rows (probably retrieved from DB)
$resultSet = array(
    array(
        'name'  => 'John Doe',
        'email' => 'john.doe@example.com',
        'age'   => 33,
    ),
    array(
        'name'  => 'Jane Doe',
        'email' => 'j.doe@example.com',
        'age'   => 30,

    ),
);

// $bodyId is the body identifier used when appending rows to this particular body
$bodyId = $table->addBody(array('class' => 'main-body'));
foreach ($resultSet as $entry) {
    $indexResult = array_values($entry); // <-- the array passed to the addRow must be indexed
    $table->addRow($indexResult, array (/* attributes */), 'td', true, $bodyId);
    // note how we specify the body ID to which we append rows -----------^
    // This is useful when working with multiple table bodies (<tbody />).
}

表中的多个<tbody />标签的概念也可以利用addBody()表类的方法来利用,该方法返回主体标识符以在稍后附加行时用作参考(参见上面的注释)。

有了这个,显示表格就很简单了:

<?php
    echo $table->toHtml();
    // or simply
    echo $table;
?>

此示例的 HTML 内容现在如下所示:

<table class="my-table">
    <thead class="header-row">
        <tr>
            <th>Name</th>
            <th>Email</th>
            <th>Age</th>
        </tr>
    </thead>
    <tbody class="main-body">
        <tr>
            <td>John Doe</td>
            <td>john.doe@example.com</td>
            <td>33</td>
        </tr>
        <tr>
            <td>Jane Doe</td>
            <td>j.doe@example.com</td>
            <td>30</td>
        </tr>
    </tbody>
</table>

希望这可以帮助 :)

斯托扬。

于 2013-04-07T13:13:18.143 回答