如何突出我的一排表

时间:2016-03-07 07:07:28

标签: php mysql css

当我从数据库中读取内容时,如何突出显示表格行的背景颜色?有时两排。要突出显示的条件是第3列的值。

<?php               
echo "<table id='allocation' class='inlineTable'>";  //style='border: solid 1px black;'
echo "<tr>";
echo "<th class=\"row-1 a_user\">User </th>";
echo "<th class=\"row-2 a_destination\">User </th>";
echo "<th class=\"row-3 a_tremaining\">Time Remaining </th>";
echo "<col = width: 3em />";
echo "</tr>";
echo "<col = width: 3em />";
class TableRows extends RecursiveIteratorIterator {
    function __construct($it) { 
     parent::__construct($it, self::LEAVES_ONLY);
    }
    function current() {
     return "<td style='width: 100px; border: 1px solid black;'>" . parent::current(). "</td>";
    }
    function beginChildren() {
     echo "<tr>";
    }
    function endChildren() {
     echo "</tr>" . "\n";
    }       
}           

$servername = "localhost";
$dbname = "mydb";
$user = 'root';
$port = 3306;

try{
    $conn = new PDO("mysql:host=$servername;port=$port;dbname=$dbname", $user);
    $conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);         
    $sql_fetch = $conn->prepare("SELECT user_ID, destination, trem FROM reservation_table");
    $sql_fetch->execute();
    $result = $sql_fetch->setFetchMode(PDO::FETCH_ASSOC);
    foreach(new TableRows2(new RecursiveArrayIterator($sql_fetch->fetchAll())) as $k=>$v) {
        echo $v;
    }
}
catch(PDOException $e) {
     echo "Error: " . $e->getMessage();
}

echo "</table>";
$conn = null;
?>

我可以请你帮忙吗?当trem(第三列)中的值达到00:00时,我想突出显示或闪烁行。我现在的css非常基本/简单:https://jsfiddle.net/8Lfj3h0j/

真的需要帮助。

2 个答案:

答案 0 :(得分:1)

由于我还不能评论,我会这样问。能否请你更具体一点。 trem值看起来像一个计数器。所以你想要做的是用javascript检查行的值,如果值是00.00,你用javascript更改css类。

$('#elementId').toggleClass('yourCSSclass');

如果这不是您的意思,那么请务必随意纠正我或澄清您的问题:)

编辑: 在你的php函数&#34;当前&#34;您可以使用if语句检查值是否为00.00。如果值为00.00,则调用javascript函数 它应该是这样的:

function current() {
if(parent::current()=="00.00"){
echo '<script type="text/javascript">'
   , '$('#elementId').toggleClass('yourCSSclass');'
   , '</script>'
;}else{}
     return "<td style='width: 100px; border: 1px solid black;'>" . parent::current(). "</td>";
    }

注意:我对RecursiveIterator类没有什么经验,所以我无法确定parent :: current()==&#34; 00.00&#34;会工作,但你应该得到检查值并调用js函数的一般想法。

编辑: 从评论粘贴的副本

<?php

 $i=0; while($array=sqlsrv_fetch_array($data)){ 
 $counterVariable=parent::current();
  //not sure if the above line works this is just theory
 ?>
 <tr data-id="<?php echo $i; ?>">
      <td><?php echo $array['Product_id']; ?></td> 
      <td><?php echo $array['Product_name']; ?></td>
      <td><?php echo $counterVariable ?></td> 
</tr> 
<?php $i=$i+1; }?>

答案 1 :(得分:0)

 #allocation tr:nth-child(3n+3) {  
      color: #ccc;
    }

对每个突出显示的第3列使用此css。