【问题标题】:How to hide and show a column in html table based on a php condition如何根据php条件隐藏和显示html表中的列
【发布时间】:2018-12-10 06:28:50
【问题描述】:

如何根据php条件隐藏和显示html表中的列。

$gid = $_SESSION['gid'];

if(gid == NO) 
{
      //display whole table 

}
else{
        // Dont dispaly the certain columns like gst,sgst.
}

表格看起来像

    <table class="table">
    <thead>
    <tr>
    <th class="border-0 text-uppercase small font-weight-bold">Sl no</th>
    <th class="border-0 text-uppercase small font-weight-bold">Spares Particulars</th>
    <th class="border-0 text-uppercase small font-weight-bold">Amount</th>
    <th class="border-0 text-uppercase small font-weight-bold">Quantity</th>
    <th class="border-0 text-uppercase small font-weight-bold">GST %</th>
    <th class="border-0 text-uppercase small font-weight-bold">GST AMT</th>
    <th class="border-0 text-uppercase small font-weight-bold">CGST %</th>
    <th class="border-0 text-uppercase small font-weight-bold">CGST AMT</th>
    <th class="border-0 text-uppercase small font-weight-bold">SGST %</th>
    <th class="border-0 text-uppercase small font-weight-bold">SGST AMT</th>
    <th class="border-0 text-uppercase small font-weight-bold">Total AMT</th>
     </tr>
        </thead>
        <tbody>
    <tr>
<td><?php echo $i ?></td>
<td><?php echo $sparen ?></td>
<td><?php echo $row9['amt'] ?></td>
<td><?php echo $row9['quant'] ?></td>
<td><?php echo $row9['gstp'] ?></td>
<td><?php echo round($row9['amt']*($row9['gstp']/100)) ?></td>
<td><?php echo round($row9['gstp']/2) ?></td>
<td><?php echo round(($row9['amt']*($row9['gstp']/100))/2) ?></td>
<td><?php echo round($row9['gstp']/2) ?></td>
<td><?php echo round(($row9['amt']*($row9['gstp']/100))/2) ?></td>
<td><?php echo round((($row9['amt']*($row9['gstp']/100))+$row9['amt'])*$row9['quant']) ?></td>

</tr>                            
</tbody>
</table>

如果 gid=YES,我不希望显示像 gst,gstamt,cgst,cgstamt,sgst,sgstamt 这样的列。问题是我为此尝试了js,但这不起作用。有人可以帮助我提供更简单的解决方案吗?

【问题讨论】:

  • 在页面顶部设置一个变量并在 HTML 部分添加 IF 条件以通过检查该值来显示或隐藏。

标签: javascript php html css


【解决方案1】:

您可以为该任务使用 PHP 三元运算符和 css 显示属性

$ShowHide = ($gid == 'NO') ? 'block' : 'none';
<td style="display:<?php echo $ShowHide; ?>;"><?php echo round($row9['gstp']/2) ?></td>

我认为这是完成任务的一种简单方法。 $ShowHide 将根据$gid 的值将显示属性设置为td

【讨论】:

  • 这不能正常工作,值尚未显示但在表格之外。
  • @VipulRao 这仅适用于一个td 你必须按照你想要的所有步骤进行
  • @VipulRao 你能告诉我你在style="??"得到什么吗?
  • 就算没有
【解决方案2】:
<?php
$gid = $_SESSION['gid'];
?>

<table class="table">
    <thead>
    <tr>
        <th class="border-0 text-uppercase small font-weight-bold">Sl no</th>
        <th class="border-0 text-uppercase small font-weight-bold">Spares Particulars</th>
        <th class="border-0 text-uppercase small font-weight-bold">Amount</th>
        <th class="border-0 text-uppercase small font-weight-bold">Quantity</th>
        <?php if ($gid != 'YES') { ?>
        <th class="border-0 text-uppercase small font-weight-bold">GST %</th>
        <th class="border-0 text-uppercase small font-weight-bold">GST AMT</th>
        <th class="border-0 text-uppercase small font-weight-bold">CGST %</th>
        <th class="border-0 text-uppercase small font-weight-bold">CGST AMT</th>
        <th class="border-0 text-uppercase small font-weight-bold">SGST %</th>
        <th class="border-0 text-uppercase small font-weight-bold">SGST AMT</th>
        <th class="border-0 text-uppercase small font-weight-bold">Total AMT</th>
        <? } ?>
    </tr>
    </thead>
    <tbody>
    <tr>
        <td><?php echo $i ?></td>
        <td><?php echo $sparen ?></td>
        <td><?php echo $row9['amt'] ?></td>
        <td><?php echo $row9['quant'] ?></td>
        <?php if ($gid != 'YES') { ?>
        <td><?php echo $row9['gstp'] ?></td>
        <td><?php echo round($row9['amt'] * ($row9['gstp'] / 100)) ?></td>
        <td><?php echo round($row9['gstp'] / 2) ?></td>
        <td><?php echo round(($row9['amt'] * ($row9['gstp'] / 100)) / 2) ?></td>
        <td><?php echo round($row9['gstp'] / 2) ?></td>
        <td><?php echo round(($row9['amt'] * ($row9['gstp'] / 100)) / 2) ?></td>
        <td><?php echo round((($row9['amt'] * ($row9['gstp'] / 100)) + $row9['amt']) * $row9['quant']) ?></td>
        <? } ?>
    </tr>
    </tbody>
</table>

【讨论】:

    【解决方案3】:

    在顶部设置标志变量值:

     $gid = $_SESSION['gid'];
    
        if(gid == NO) 
        {
             $flag = true;
    
        }
        else{
                $flag = false;
        }
    
    
        <table class="table">
            <thead>
            <tr>
            <th class="border-0 text-uppercase small font-weight-bold">Sl no</th>
            <th class="border-0 text-uppercase small font-weight-bold">Spares Particulars</th>
            <th class="border-0 text-uppercase small font-weight-bold">Amount</th>
            <th class="border-0 text-uppercase small font-weight-bold">Quantity</th>
            <th class="border-0 text-uppercase small font-weight-bold">GST %</th>
            <th class="border-0 text-uppercase small font-weight-bold">GST AMT</th>
            <th class="border-0 text-uppercase small font-weight-bold">CGST %</th>
            <th class="border-0 text-uppercase small font-weight-bold">CGST AMT</th>
    <?php if($flag) { ?>
            <th class="border-0 text-uppercase small font-weight-bold">SGST %</th>
            <th class="border-0 text-uppercase small font-weight-bold">SGST AMT</th>
    <?php } ?>
            <th class="border-0 text-uppercase small font-weight-bold">Total AMT</th>
             </tr>
                </thead>
                <tbody>
            <tr>
        <td><?php echo $i ?></td>
        <td><?php echo $sparen ?></td>
        <td><?php echo $row9['amt'] ?></td>
        <td><?php echo $row9['quant'] ?></td>
        <td><?php echo $row9['gstp'] ?></td>
        <td><?php echo round($row9['amt']*($row9['gstp']/100)) ?></td>
        <td><?php echo round($row9['gstp']/2) ?></td>
        <td><?php echo round(($row9['amt']*($row9['gstp']/100))/2) ?></td>
    
    <?php if($flag) { ?>    
        <td><?php echo round($row9['gstp']/2) ?></td>
        <td><?php echo round(($row9['amt']*($row9['gstp']/100))/2) ?></td>
    <?php } ?>
    
        <td><?php echo round((($row9['amt']*($row9['gstp']/100))+$row9['amt'])*$row9['quant']) ?></td>
    
        </tr>                            
        </tbody>
        </table>
    

    并检查 HTML 部分以显示/隐藏 TD 标题及其各自的值。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-03-09
      • 2021-03-25
      • 2013-09-03
      相关资源
      最近更新 更多