使用 php 从表列中回显总和

Echo sum from a table column using php

本文关键字:php 使用      更新时间:2023-09-26

>我有这样的表格:

<table>
<tr>
<td>100</td>
</tr><br>
<tr>
<td>200</td>
</tr><br>
<tr>
<td>300</td>
</tr><br>
<tr>
<td>400</td>
</tr><br>
<tr>
<td>500</td>
</tr><br>
<tr>
<td>600</td>
</tr><br><br>
<tr>
<td>Total: </td>
<td>2100</td>
</tr>
</table>

我想使用 PHP 计算并显示列的总和,如上所示,但我不确定如何实现这一目标。请帮忙。

您可以使用javascript document.getElementById("idHere").value轻松地执行此操作,并将它们的总和存储在单个变量中。

不好的部分是你应该给每个td一个ID。

在PHP中,你应该给他们name属性,添加一个submit按钮,并从全局变量$_POST["nameOfTD"];中获取值

您可以使用缓冲区读取页面内容,然后解析 html:

<?php
    ob_start();
?><table>
<tr>
<td class="foo">100</td>
</tr><br>
<tr>
<td class="foo">200</td>
</tr><br>
<tr>
<td>300</td>
</tr><br>
<tr>
<td>400</td>
</tr><br>
<tr>
<td>500</td>
</tr><br>
<tr>
<td>600</td>
</tr><br><br>
<tr>
<td>Total: </td>
<?php
    $DOM = new DOMDocument;
    $DOM->loadHTML(ob_get_contents());
    $items = $DOM->getElementsByTagName('td');
    function getClass($item) {
        foreach ($item->attributes as $name => $attrNode) {
            if ($name == 'class') {
                return $attrNode->nodeValue;
            }
        }
    }
    $sum = 0;
    for ($i = 0; $i < $items->length; $i++) {
        $item = $items->item($i);
        if (getClass($item) == 'foo') {
            $sum += intval($item->nodeValue);
        }
    }
    echo "<td>" . $sum . "</td>";
?>
</tr>
</table>
<?php
ob_end_flush();
?>