使用php从表列回声总和

时间:2016-03-10 08:49:55

标签: javascript php jquery html

我有一张这样的表:

<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计算并显示如上所示的列的总数,但我不知道如何使这成为可能。请帮忙。

2 个答案:

答案 0 :(得分:1)

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

不好的一点是你应该给每个td一个Id。

在PHP中,您应该为其提供name属性,添加submit按钮并从全局变量$_POST["nameOfTD"];

中获取值

答案 1 :(得分:-1)

您可以使用缓冲区读取页面内容,然后解析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();
?>