提问人:VeroBot 提问时间:11/9/2023 更新时间:11/9/2023 访问量:31
如何使我的 HTML 模板对 1 个以上的表格有用?
How can I make my HTML template useful for more than 1 table?
问:
我制作了一个HTML文件,其中包含表格的模板。
<body>
**#HeadingGoesHere#**
<table>
<thead>
<tr>
**#TableHeading#**
</tr>
</thead>
<tbody>
**#TableBody#**
</tbody>
<tfoot>
**#TableTotals#**
</tfoot>
</table>
</body>
我有一个PHP程序,它使用str_replace来填充表格。这对于创建 1 个表非常有用,但是我需要为 1 个或多个表实现这一点。使用我的 HTML 模板,我认为这是不可能的,因为它只允许创建一个表,而我需要创建 1 个或多个表。
我在 HTML 和 PHP 方面不是很有经验,所以我不确定是否有办法使用 HTML 模板来做到这一点,但我没有找到任何东西。
答:
0赞
Kevin Waterson
11/9/2023
#1
我会使用使用DOM的现有解决方案。 这将为您提供所需的灵活性,并确保输出的 HTML 格式正确。 下面的这个基本示例演示了如何开始,并创建了一个可重用的类,可用于在任何项目中生成任何表。
<?php
class table extends DomDocument{
/**
* This variable holds the table
* @access private
*/
private $table;
/**
* Constructor, sets up the root element
*/
public function __construct(){
parent::__construct();
$table = self::createElement('table');
$this->table = parent::appendChild($table);
}
/**
* Appends a child to the root node ($table)
* @access public
* @param domNode $child
* @return void
*/
public function appendChild(domNode $child):void {
$this->table->appendChild($child);
}
/**
* Returns a string representation of the table
* @access public
* @return string
*/
public function __toString() :string{
return parent::saveHTML();
}
}
$table = new table;
// create the <thead>
$thead = $table->createElement('thead');
// create the table column headings
$th = $table->createElement('th', 'Heading 1');
$thead->appendChild($th);
$th = $table->createElement('th', 'Heading 1');
$thead->appendChild($th);
$th = $table->createElement('th', 'Heading 1');
$thead->appendChild($th);
// add the head to the table
// create the <tbody>
$tbody = $table->createElement('tbody');
// create a table row
$tr = $table->createElement('tr');
// create a table data cell
$td = $table->createElement('td', 'Col1 Row 1');
$tr->appendChild($td);
$td = $table->createElement('td', 'Col2 Row 1');
$tr->appendChild($td);
$td = $table->createElement('td', 'Col3 Row 1');
$tr->appendChild($td);
// add the above row to the tbody
$tbody->appendChild($tr);
// create a second table row
$tr = $table->createElement('tr');
// create a table data cell
$td = $table->createElement('td', 'Col1 Row 2');
$tr->appendChild($td);
$td = $table->createElement('td', 'Col2 Row 2');
$tr->appendChild($td);
$td = $table->createElement('td', 'Col3 Row 2');
$tr->appendChild($td);
// add the above row to the tbody
$tbody->appendChild($tr);
// create the <tfoot>
$tfoot = $table->createElement('tfoot');
// create the table column headings
$th = $table->createElement('th', 'Foot 1');
$thead->appendChild($th);
$th = $table->createElement('th', 'Foot 2');
$thead->appendChild($th);
$th = $table->createElement('th', 'Foot 3');
$tfoot->appendChild($th);
// add the thead to the table
$table->appendChild($thead);
// add the tbody to the table
$table->appendChild($tbody);
// add the tfoot to the table
$table->appendChild($tfoot);
echo $table;
上一个:表数据未正确显示
评论