0

我的学校时间表有问题,它是用 php/html 编码的。课程填充在 html 表格中(惊喜!!),填充的单元格必须获得背景颜色。问题是,表格是动态填充数据的,因此不可能为 td-tag 提供背景颜色。这是我的代码:

echo"<td id='cell' style='width:15%'>";
foreach($plan->result as $res){
   if($res->date == "20131007" && $item->startTime == $res->startTime){
      foreach ($res->kl as $kl){
         echo getKlasseById($ch, $kl->id).", ";
      }
      echo"<script type=\"text/javascript\">
      var td = document.getElementById('cell');
      td.style.backgroundColor='#FF8000';</script>";
   }
}

这样做是用背景颜色填充表格的第一个单元格,然后什么都没有(关于颜色)。

编辑

好的,我解决了我的问题。正如我的编程教授所说,我试图用聚变炸弹射击鸽子。我只是<div>在 foreach-loop 周围加上所需的背景颜色。无论如何,谢谢你的帮助。

4

2 回答 2

1

创建一个具有所需背景颜色的 CSS 类:

.colored { background-color: yourcolor; }

并且,当您回显 时<td>,将类添加到其中。

与其在 if 之前渲染 td,不如在 if 中执行此操作,如果这是主要问题!..

echo "<td id=\"cell\" class=\"colored\">";

更清楚地说,我的意思是,而不是这个:

echo"<td id='cell' style='width:15%'>";
foreach($plan->result as $res){
   if($res->date == "20131007" && $item->startTime == $res->startTime){
      foreach ($res->kl as $kl){
         echo getKlasseById($ch, $kl->id).", ";
      }
      echo"<script type=\"text/javascript\">
      var td = document.getElementById('cell');
      td.style.backgroundColor='#FF8000';</script>";
   }
}

你可以这样做:

foreach($plan->result as $res){
   if($res->date == "20131007" && $item->startTime == $res->startTime){
      echo"<td id='cell' style='width:15%' class='colored'>";
      foreach ($res->kl as $kl){
         echo getKlasseById($ch, $kl->id).", ";
      }
   }
   else {
     echo"<td id='cell' style='width:15%'>";
     // Whatever goes into the else, if needed.
   }
}

无论如何..你没有关闭<td>,是吗?:)

于 2013-09-09T09:22:43.023 回答
0

为什么会这样?为什么不改用 PHP。所有这些小的 Javascript 元素只会减慢页面的速度,并使浏览器解析页面的速度变慢。PHP+ 一些类的效率更高

foreach($plan->result as $res){
    $backgroundColor = "";
    if($res->date == "20131007" && $item->startTime == $res->startTime){
      foreach ($res->kl as $kl){
         echo getKlasseById($ch, $kl->id).", ";
     }
    $backgroundColor = "#FF8000";
   }
}
echo"<td id='cell' style='width:15%;background-color: ".$backgroundColor."'>";

小旁注:您的代码有点不清楚,所以我不确定我是按正确的顺序还是使用正确的语句放置代码,但您明白我的意思

于 2013-09-09T09:27:15.633 回答