Php 如何用背景色动态填充表格单元格?

Php 如何用背景色动态填充表格单元格?,php,javascript,html,Php,Javascript,Html,我有一个关于学校时间表的问题,它是用php/html编码的。课程填写在html表格中(惊喜!!),填充的单元格必须有背景色。问题是,表是动态填充数据的,因此不可能为td标记指定背景色。这是我的密码: echo"<td id='cell' style='width:15%'>"; foreach($plan->result as $res){ if($res->date == "20131007" && $item->startTime == $

我有一个关于学校时间表的问题,它是用php/html编码的。课程填写在html表格中(惊喜!!),填充的单元格必须有背景色。问题是,表是动态填充数据的,因此不可能为td标记指定背景色。这是我的密码:

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>";
   }
}
echo”“;
foreach($plan->结果为$res){
如果($res->date==“20131007”&&$item->startTime==$res->startTime){
foreach($res->kl作为$kl){
echo getKlasseById($ch,$kl->id)。“,”;
}
回声“
var td=document.getElementById('cell');
td.style.backgroundColor='#FF8000';
}
}
这样做的目的是用背景色填充表格的第一个单元格,然后不填充任何内容(关于颜色)

编辑

好的,我解决了我的问题。正如我的编程教授所说,我试图用聚变炸弹射击鸽子。我只是在foreach循环周围放置了一个
,背景颜色为所需。
无论如何,感谢您的帮助。

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

.colored { background-color: yourcolor; }
并且,当您回显
时,将类添加到其中

如果这是主要问题的话,您可以在if内部进行渲染,而不是在if之前渲染td

echo "<td id=\"cell\" class=\"colored\">";
echo”“;
更清楚地说,我的意思不是:

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>";
   }
}
echo”“;
foreach($plan->结果为$res){
如果($res->date==“20131007”&&$item->startTime==$res->startTime){
foreach($res->kl作为$kl){
echo getKlasseById($ch,$kl->id)。“,”;
}
回声“
var td=document.getElementById('cell');
td.style.backgroundColor='#FF8000';
}
}
您可以这样做:

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.
   }
}
foreach($plan->结果为$res){
如果($res->date==“20131007”&&$item->startTime==$res->startTime){
回声“;
foreach($res->kl作为$kl){
echo getKlasseById($ch,$kl->id)。“,”;
}
}
否则{
回声“;
//如果需要的话,任何东西都可以放在其他地方。
}
}

无论如何。。您没有关闭
,是吗?:)

为什么这样?为什么不改用PHP呢。所有这些samlljavascript元素只会降低页面速度,并使浏览器解析页面的速度变慢。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."'>";
foreach($plan->结果为$res){
$backgroundColor=“”;
如果($res->date==“20131007”&&$item->startTime==$res->startTime){
foreach($res->kl作为$kl){
echo getKlasseById($ch,$kl->id)。“,”;
}
$backgroundColor=“#FF8000”;
}
}
回声“;

小旁注:你的代码有点不清楚,所以我不确定我是按正确的顺序还是用正确的语句来编写代码,但是你明白我的意思了

你能不能为给定的
td
类添加CSS规则,并将类设置为类似于
coloredcell
?我建议创建一个css类,因为在创建对象时通常建议使用类而不是填充样式,不是吗?:)如果它有多次出现,一个类会更好,是的。基于当前代码,我给出了内联风格的方法作为示例:)当然,css类要比我在那里做的好得多。这只是为了尝试一下代码。不幸的是,foreach循环必须放在td标记中。所以这个解决方案看起来很好,但对我不起作用。谢谢你的帮助,谢谢你的回答。嗯,我要关了,只是忘了把它贴在这里;)我在这里发布之前尝试过你的解决方案,但结果是,它不再用正确的数据填充单元格。