如何使用CSS对表格进行格式化

3
我试图设计这个表格,但似乎在某些情况下无法正确显示。在这个表格中,$cal_amount和$cal_amount_key部分应该为任意数量的汽车打印整个内容。请注意保留HTML标记。

Screenshot

代码:

PHP

<?php

$TotV=array("car","bus","jeep");
$Nopkg=array(759,159,459);
$Avg=array(20,50,15);
$Qty=array(15000,58000,58922);
$rate=array(31.73,17.15,17.25);
$gro_tot=789456;
$Cex=781254;    
$S_Tot=159254;
$Vat=12500;
$frieght=0;
$G_Tot=985251;


?>

CSS

table,td,th,tr {
 border:1px solid black;
    border-collapse: collapse;
text-align:left;
}

HTML

<table>
    <tr>
    <th>S.No</th><th align="center">Variety of Goods</th><th style="width:70px">No.and Description of<br/>Packages</th><th style="width:70px">Avg. Contents per Package<br/>(Pcs)</th><th style="width:70px">Total Quantity<br/>(Pcs)</th><th style="width:70px">Rate per pc.</th><th colspan="2" style="text-align:center;">Amount<br/>(Rs.)</th>
    </tr>
    <?php
     for($i=0;$i<count($TotV);$i++)
    {?>
    <tr>
    <td><?php echo $i+1;?></td>
    <td><?php  echo strtoupper($TotV[$i]);?></td>
    <td><?php echo $Nopkg[$i];?></td>
    <td><?php echo $Avg[$i];?></td>
    <td><?php echo  $Qty[$i];?></td>
    <td><?php echo $rate[$i];?></td>

    <?php
    }?>

    <td colspan="1">Total Value</td><td style="width:100px;text-align:right;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<?php echo $gro_tot;?></td>
    <tr><td></td><td></td>
    <td></td><td></td><td></td><td></td><td style="width:150px;">C.Ex.Duty &nbsp;&nbsp;&nbsp; 12.5%</td><td style="width:150px;text-align:right;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <?php echo $Cex;?></td></tr>
    <tr><td></td><td></td><td></td><td></td><td></td><td></td></td><td style="width:150px;">SubTotal</td><td id="num" style="width:150px;text-align:right;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<?php echo $S_Tot;?></td></tr>
    <tr><td></td><td></td><td></td><td></td><td></td><td></td><td style="width:150px;">VAT/CST &nbsp;&nbsp;&nbsp; 2%</td><td  style="width:150px;text-align:right;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<?php echo $Vat;?></td></tr>
    <tr><td style="border:none;" colspan="3"><b>qwert</b></td><td style="border:none;"></td><td style="border:none;" colspan="2"><td><b>Freight</b></td><td style="width:150px;text-align:right;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<STRONG><?php echo $frieght;?></STRONG></td></tr>
    <tr><td style="border:none;" colspan="3"><b>asdf</b></td><td style="border:none;"></td><td style="border:none;" colspan="2"><td><b>Grand Total</b></td><td style="width:150px;text-align:right;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<STRONG><?php echo $G_Tot;?></STRONG></td></tr>
    </tr>
    </table>

请建议对代码进行一些更改,使其从第一行开始而不是第三行。先行感谢。

1
每一行<tr>中的<td>数量必须相同。如果一行有5个<td>,下一行必须匹配。您也可以有3个<td>,和1个<td>带colspan = 2,总数仍为5。遵循这个规则。 - Muhammed
@MuhammedM,感谢您的建议,但问题还没有得到解决。 - Babaji
1个回答

2

试试这个:

首先创建PHP数组以进行总计算和标签。

$TotV=array("car","bus","jeep");
$Nopkg=array(759,159,459);
$Avg=array(20,50,15);
$Qty=array(15000,58000,58922);
$rate=array(31.73,17.15,17.25);

$gro_tot=789456;
$Cex=781254;    
$S_Tot=159254;
$Vat=12500;
$frieght=0;
$G_Tot=985251;
$cal_amount_key = array('Total Value',
        'C.Ex.Duty &nbsp;&nbsp;&nbsp; 12.5%',
        'SubTotal',
        'VAT/CST &nbsp;&nbsp;&nbsp; 2%',
        'Freight',
        'Grand Total');
$cal_amount = array($gro_tot,
        $Cex,
        $S_Tot,
        $Vat,
        $frieght,
        $G_Tot);

将代码放在循环内部:
<table>
    <tr>
        <th>S.No</th>
        <th align="center">Variety of Goods</th>
        <th style="width:70px">No.and Description of<br/>Packages</th>
        <th style="width:70px">Avg. Contents per Package<br/>(Pcs)</th>
        <th style="width:70px">Total Quantity<br/>(Pcs)</th>
        <th style="width:70px">Rate per pc.</th>
        <th colspan="2" style="text-align:center;">Amount<br/>(Rs.)</th>
    </tr>
    <?php
     for($i=0;$i<count($TotV);$i++) {?>
        <tr>
        <td><?php echo $i+1;?></td>
        <td><?php  echo strtoupper($TotV[$i]);?></td>
        <td><?php echo $Nopkg[$i];?></td>
        <td><?php echo $Avg[$i];?></td>
        <td><?php echo  $Qty[$i];?></td>
        <td><?php echo $rate[$i];?></td>
        <td><?php echo $cal_amount_key[$i];?></td>
        <td style="width:100px;text-align:right;"><?php echo $cal_amount[$i];?></td>
        </tr>
      <?php } ?>
    <tr>
        <td></td>
        <td></td>
        <td></td>
        <td></td>
        <td></td>
        <td></td>
        <td style="width:150px;">VAT/CST &nbsp;&nbsp;&nbsp; 2%</td>
        <td  style="width:150px;text-align:right;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<?php echo $Vat;?></td>
    </tr>
    <tr>
        <td style="border:none;" colspan="3"><b>qwert</b></td>
        <td style="border:none;"></td>
        <td style="border:none;" colspan="2">
        <td><b>Freight</b></td>
        <td style="width:150px;text-align:right;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<STRONG><?php echo $frieght;?></STRONG></td>
    </tr>
    <tr>
        <td style="border:none;" colspan="3"><b>asdf</b></td>
        <td style="border:none;"></td>
        <td style="border:none;" colspan="2">
        <td><b>Grand Total</b></td>
        <td style="width:150px;text-align:right;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<STRONG><?php echo $G_Tot;?></STRONG></td>
    </tr>
</table>

嗨,我现在遇到问题了。如果有两辆车,那么它只会打印gro_tot和$Cex。它应该打印所有剩余的细节。希望你能理解。 - Babaji
无论有三辆车还是六辆车,$cal_amount和$cal_amount_key数组在任何情况下都应该完整打印。 - Babaji

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接