如果满足条件,则隐藏表中的列


Hiding columns in a table if a condition is met

我将下表用于3个条件,通过变量传递值。

在我的一个条件下,我只有3列,即$h2对于一个条件将为空。if($h2=="")我想隐藏整个列。

我该怎么做?

这是我的代码:

<table id="usertracking" >
<thead>
<tr>
<?php   
echo'<td><h3>'.$h1.'<h3></td>'; 
echo'<td><h3>'.$h2.'<h3></td>';
echo'<td><h3>'.$h3.'<h3></td>';
echo'<td><h3>'.$h4.'<h3></td>';                     
?>  
</tr>
</thead>
<tbody>
        <?php
        for($i=$start;$i<$end;$i++)
        {
            echo'<tr>'; 
            echo'<td>'.$ARRAY[$i]['MpwName'].'</td>';
            echo'<td>'.$ARRAY[$i]['PatientName'].'</td>';
            echo'<td>'.$ARRAY[$i]['PatientAddress'].'</td>';
            echo'<td>'.$ARRAY[$i]['New'].'</td>';
            echo'<tr>';
        }   
        ?>
</tbody>
</table>

您可以执行以下操作:

$display_column1=$display_column2=$display_column3=$display_column4=true;
if($h1=="")$display_column1=false;
if($h2=="")$display_column2=false;
...
echo'<tr>'; 
if($display_column1)echo'<td>'.$ARRAY[$i]['MpwName'].'</td>';
if($display_column2)echo'<td>'.$ARRAY[$i]['PatientName'].'</td>';
...

更好的是,让这个循环。

您可以检查$h2是否为空。如果没有,打印:

<table id="usertracking" >
<thead>
<tr>
<?php   
echo'<td><h3>'.$h1.'<h3></td>'; 
if (!empty($h2))                        // check
    echo'<td><h3>'.$h2.'<h3></td>';     // print
echo'<td><h3>'.$h3.'<h3></td>';
echo'<td><h3>'.$h4.'<h3></td>';                     
?>  
</tr>
</thead>
<tbody>
        <?php
        for($i=$start;$i<$end;$i++)
        {
            echo'<tr>'; 
            echo'<td>'.$ARRAY[$i]['MpwName'].'</td>';
            if (!empty($h2))                                  // check
                echo'<td>'.$ARRAY[$i]['PatientName'].'</td>'; // print
            echo'<td>'.$ARRAY[$i]['PatientAddress'].'</td>';
            echo'<td>'.$ARRAY[$i]['New'].'</td>';
            echo'<tr>';
        }   
        ?>
</tbody>
</table>

只需将if条件放在所需的每个回波之前:

//in the Head
if ($h2) echo'<td><h3>'.$h2.'<h3></td>';

在正文中,在列数据处:

if ($h2) echo'<td>'.$ARRAY[$i]['PatientName'].'</td>';

使用CSS和PHP的组合,您可以尝试类似的东西

<td style="display:<?/*Your condition here*/?>;">

使用此

//in the Head
if ($h2 != ""){ echo'<td><h3>'.$h2.'<h3></td>'; }
// in loop
if ($h2!= ""){ echo'<td>'.$ARRAY[$i]['PatientName'].'</td>'; }