提问者:小点点

根据$diff更改单元格的背景色


我想做一个日期过滤器页面,其中可以根据日期的范围过滤存储在数据库中的数据。

我有一个列“DIFF”,存储银泰和停机的时差。我想根据$diff中存储的值更改单元格的背景颜色。如果小于8,则红色为绿色。

我不能这样做...请帮助

  $result = mysqli_query($connect, $query); 
  $cnt=1;     
  $output .= '  
       <table class="table table-bordered">  
            <tr>  
                 <th width="8%">Sr No.</th>  
                 <th width="18%">EMPLOYEE ID</th> 
                 <th width="30%">EMPLOYEE NAME</th>
                 <th width="15%">IN_TIME</th>  
                 <th width="15%">OUT_TIME</th>  
                 <th width="20%">DATE</th> 
                 <th width="20%">WORKING HOURS</th> 
            </tr>  
  ';  
  if(mysqli_num_rows($result) > 0)  
  {  
       while($row = mysqli_fetch_array($result))  
       {  
                    $outtime = $row["outtime"];
                    $intime = $row["intime"];
                    $array1 = explode(':', $intime);
                    $array2 = explode(':', $outtime);

                    $minutes1 = ($array1[0] * 60.0 + $array1[1])/60;
                    $minutes2 = ($array2[0] * 60.0 + $array2[1])/60;

                    $diff = round(($minutes2 - $minutes1),1).' hrs';


            $output .= '  
                 <tr>  
                      <td align="center">'. $cnt .'</td>  
                      <td align="center">'. $row["EmpId"] .'</td>  
                      <td align="center">'. $row["FirstName"] . " " . 
                       $row["LastName"].'</td> 
                      <td align="center">'. $row["intime"] .'</td>  
                      <td align="center"> '. $row["outtime"] .'</td>  
                      <td align="center">'. $row["date"] .'</td> 
                      <td align="center" > '.$diff.' </td>
                 </tr>  
            ';  $cnt++;
       } 

  }  
  else  
  {  
       $output .= '  
            <tr>  
                 <td colspan="5">No Record Found</td>  
            </tr>  
       ';  
  }  
  $output .= '</table>';  
  echo $output;  

}


共3个答案

匿名用户

您可以通过使用php来实现这一点,如:-

<td align="center"<?php if($diff<8){?> style="background-color: red; " <?php }else{?>style="background-color: green;"<?php } ?> > '.$diff.' </td>

或者也可以使用js,比如:-

<td align="center" class="check" > '.$diff.' </td>

<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<script>
$(document).ready(function(){
//alert($('.check').text());
 $(" tr > td.check").each(function(){
      if($(this).text()<8){
          $( this ).css( "background-color", "red" );
      }else{
          $( this ).css( "background-color", "green" );
      }
    });
});
</script>

匿名用户

尝试为想要填充颜色的td添加背景颜色属性。

代码应该如下所示:

$output .= '<tr>  
                <td align="center">' . $cnt . '</td>  
                <td align="center">' . $row["EmpId"] . '</td>  
                <td align="center">' . $row["FirstName"] . " " . $row["LastName"] . '</td> 
                <td align="center">' . $row["intime"] . '</td>  
                <td align="center"> ' . $row["outtime"] . '</td>  
                <td align="center">' . $row["date"] . '</td>';
if ($diff < 8) {
    $output .= '<td align="center" style="background-color: #ff0000;"> ' . $diff . ' </td>';
} else {
    $output .= '<td align="center" style="background-color: #00ff00;"> ' . $diff . ' </td>';
}
$output .= '</tr>';

匿名用户

您是否尝试过对$diff变量执行小于操作?

您可以试试这个,它根据$diff值设置td的背景色。

更改此部分:

对此