0

我有一部分代码显示多选框并根据 if 语句显示选项:

$moduleSELECT = '<select name="moduletextarea" id="moduleselect" size="10">'.PHP_EOL;      

if($modulenum == 0){

$moduleSELECT .= "<option disabled='disabled' value=''>No Modules currently on this Course</option>";   


}else{   

while ( $currentmodstmt->fetch() ) {

$moduleSELECT .= sprintf("<option disabled='disabled' value='%s'>%s - %s</option>", $dbModuleId, $dbModuleNo, $dbModuleName) . PHP_EOL; 
}

}

$moduleSELECT .= '</select>';

现在通过在互联网上进行一些研究,我认为在选项标签中包含标签是不好的做法。所以我的问题是,如果 if 语句为真,其中记录数为 0,我如何"<option disabled='disabled' value=''>No Modules currently on this Course</option>";以红色显示文本,如果满足 else 语句,我如何sprintf("<option disabled='disabled' value='%s'>%s - %s</option>", $dbModuleId, $dbModuleNo, $dbModuleName) . PHP_EOL;以黑色文本显示这些选项?

谢谢

4

2 回答 2

2

只需为选择设置一个 css 样式(如果没有选项),在这种情况下color: red; ,您也可以为选项设置不同的颜色,只需在每个选项上设置不同的颜色。这里的小提琴示例:http: //jsfiddle.net/kennypu/CP8Xf/1/

于 2012-12-05T04:29:15.877 回答
1

我不相信您可以使用 CSS 设置单个标签的样式,但您可以像 @kennypu 指出的那样<option>设置整个标签的样式。<select>

使用更好/更直观的 UI 实现所需结果的另一种方法可能是仅<select>在您实际有数据放入标签时才输出标签。$modulenum == 0也许您应该只输出一些您可以正确设置样式的不同 HTML 。

HTML

<div class='no-data'>No Modules currently on this Course</div>

CSS

.no-data{
  background-color: #CCC;
  color: red;
  padding: 5px;
}
于 2012-12-05T04:32:04.520 回答