如何在不同的html表位置插入动态行

时间:2016-02-04 05:41:30

标签: php html

我想使用php,

回显html表中的xml数据
<type>Debit</type>
<item>Item-1</item>
<price>150</price>
<type>Debit</type>
<item>Item-2</item>
<price>250</price>
<type>Debit</type>
<item>Item-3</item>
<price>100</price>
type>Debit</type>
<item>Item-4</item>
<price>200</price>
............
...so on
<type>Credit</type>
<item>Item-50</item>
<price>200</price>
<type>Credit</type>
<item>Item-51</item>
<price>300</price>
<type>Credit</type>
<item>Item-60</item>
<price>100</price>
............
...so on

这是我插入数据之前的Html表结构

enter image description here

现在,如果您看到我的xml数据,我想在借记卡列表下动态插入借方项目,并在信用列表中信用项目,如下例所示:

enter image description here

我知道如何使用insertRow(),getElementById(“id”)动态添加行。但在这种情况下,我需要保持两个不同的位置[1表示借记,1表示信用],这样我就可以将它们插入正确position.Moreover行是动态的,因此固定行数的固定ID将无法正常工作。我怎么能在php中执行此操作。请分享您的想法,以一种简单的方式解决它。请告诉我任何进一步的信息.Thanks

1 个答案:

答案 0 :(得分:3)

试试这个解决方案。如果使用javascript,则使用两个表并在tbody中使用append()元素行。

<!DOCTYPE html>
<html>
<body>

<?php
$myXMLData =
"
<data>
<row>
    <type>Debit</type>
    <item>Item-1</item>
    <price>150</price>
</row>
<row>
    <type>Debit</type>
    <item>Item-2</item>
    <price>250</price>
</row>
<row>
    <type>Debit</type>
    <item>Item-3</item>
    <price>100</price>
</row>
<row>
    <type>Debit</type>
    <item>Item-4</item>
    <price>200</price>
</row>
<row>
    <type>Credit</type>
    <item>Item-50</item>
    <price>200</price>
</row>
<row>
    <type>Credit</type>
    <item>Item-51</item>
    <price>300</price>
</row>
<row>
    <type>Credit</type>
    <item>Item-60</item>
    <price>100</price>
</row>
</data>";

$xml=simplexml_load_string($myXMLData) or die("Error: Cannot create object");

$debit = array();
$credit = array();
$debit_total = $credit_total = 0;
foreach ($xml as $row) {
    if($row->type == 'Debit') {
        $debit[] = array('item'=> (string)$row->item, 'price'=> (float)$row->price);    
        $debit_total += (float)$row->price;
    } else {
        $credit[] = array('item'=> (string)$row->item, 'price'=> (float)$row->price);   
        $credit_total += (float)$row->price;
    }

}

?>

<table>
<tr>
    <td colspan="2">Debit list<td>
</tr>
<?php
foreach ($debit as $key => $value) {
    echo "<tr><td>{$value['item']}</td><td>{$value['price']}</td></tr>";
}
echo "<tr><td>Total</td><td>{$debit_total}</td></tr>";
echo "<tr><td colspan='2'></td></tr>";

echo "<tr><td colspan='2'>Credit list</td></tr>";
foreach ($credit as $key => $value) {
    echo "<tr><td>{$value['item']}</td><td>{$value['price']}</td></tr>";
}
echo "<tr><td>Total</td><td>{$credit_total}</td></tr>";
echo "<tr><td colspan='2'></td></tr>";
?>

</table>

</body>
</html>