Php 根据单元格上写入的文本显示不同的行颜色

Php 根据单元格上写入的文本显示不同的行颜色,php,html,css,html-table,Php,Html,Css,Html Table,嗨,我正在努力解决这个问题: 我有一个PHP代码片段,我想应用到我的网页上,以便在文本等同于“优先级”或“支持”时更改表行的颜色。我需要帮助将php实现到表的HTML部分 片段 <?php function switchColor($rowValue) { //Define the colors first $color1 = '#e2e2e2'; $color2 = '#00ff00'; $color3 = '#0000ff'; switch ($rowValue) {

嗨,我正在努力解决这个问题:

我有一个PHP代码片段,我想应用到我的网页上,以便在文本等同于“优先级”或“支持”时更改表行的颜色。我需要帮助将php实现到表的HTML部分

片段

<?php 
function switchColor($rowValue) { 

//Define the colors first 
$color1 = '#e2e2e2'; 
$color2 = '#00ff00'; 
$color3 = '#0000ff'; 

switch ($rowValue) { 
    case 'PRIORITY': 
        echo $color1; 
        break; 
    case 'ADVISORY': 
        echo $color2; 
        break; 
    default: 
        echo $color3; 
       } 
      } 

    ?> 

我需要在这个表中实现

<tr class="tablerow<?php echo $count; ?>">
                <td style="background-color: #92c38e; text-align: 
center;">
                    <span style="font-size: medium;"><?php print 
strip_tags($category_name) ?></span>
                </td>
                <td style="background-color: #92c38e; text-align: 
center;">
                    <?php foreach($category as $num=>$categor){
                        if($num != sizeof($category)-1){
                        ?>
                        <span style="color: #ffffff; font-size: 
medium;" data-id="<?php echo $categor['item_id']; ?>"><?php print 
strip_tags($categor['item_name']); ?></span>,&nbsp
                        <?php } else {?>
                        <span style="color: #ffffff; font-size: 
medium;" data-id="<?php echo $categor['item_id']; ?>"><?php print 
strip_tags($categor['item_name']); ?></span>
                    <?php } } ?>
                </td>
<!--THIS IS THE COLUMN WHERE THE CELL SHOULD CHANGE COLOR WHEN THE TEXT IS EQUIVALENT TO THE WORDS "PRIORITY OR ADVISORY-->
                <td style="background-color: #92c38e; text-align: 
center;">
                    <span style="color: #ffffff; font-size: medium;">
<?php print strip_tags($category[0]['status']); ?></span>
                </td>
            </tr>

您可以为行表创建类,而不在php上使用函数。比如说

<tr class="tablerow<?php echo $count; ?> row_<? echo $rowValue; ?>"></tr>

您可以为行表创建类,而不在php上使用函数。比如说

<tr class="tablerow<?php echo $count; ?> row_<? echo $rowValue; ?>"></tr>

您可以设置表格行颜色,如下所示:

表,th,td{
边框:1px纯黑;
}

月
储蓄
一月
$100

您可以设置表格行颜色,如下所示:

表,th,td{
边框:1px纯黑;
}

月
储蓄
一月
$100

您可以使用CSS简化它。只需为每种优先级类型创建一个CSS类,您只需将好的类添加到好的行中

tr{背景:黄色;}
tr.PRIORITY{背景:红色;}
tr.咨询{背景:蓝色;}
表{宽度:100%;}
下面是一个没有PHP的示例,只是为了看看它是如何工作的,以及它应该如何在html源代码中呈现

以下是您在php中必须做的事情:只需在tr类中“回显”您的优先级即可。
您可以通过使用CSS来简化它。只需为每种优先级类型创建一个CSS类,您只需将好的类添加到好的行中

tr{背景:黄色;}
tr.PRIORITY{背景:红色;}
tr.咨询{背景:蓝色;}
表{宽度:100%;}
下面是一个没有PHP的示例,只是为了看看它是如何工作的,以及它应该如何在html源代码中呈现

以下是您在php中必须做的事情:只需在tr类中“回显”您的优先级即可。
如果您真的必须使用此特定函数,我会这样做:

<?php 
function switchColor($rowValue) { 

//Define the colors first 
$color1 = '#e2e2e2'; 
$color2 = '#00ff00'; 
$color3 = '#0000ff'; 

switch ($rowValue) { 
    case 'PRIORITY': ?>
        <td style="background-color: <?php echo $color1?>" text-align: center;">
            <span style="color: #ffffff; font-size: medium;"><?php echo $rowValue?>    
            </span>
        </td>
        <?php
        break; 
    case 'ADVISORY': ?>
        <td style="background-color: <?php echo $color2?>" text-align: center;">
            <span style="color: #ffffff; font-size: medium;"><?php echo $rowValue?>    
            </span>
        </td>
        <?php 
        break; 
    default: ?>
        <td style="background-color: <?php echo $color3?>" text-align: center;">
            <span style="color: #ffffff; font-size: medium;"><?php echo $rowValue?>    
            </span>
        </td>
        <?php 
       } 
      } 
?> 

“>,”

如果您真的必须使用此特定函数,我会这样做:

<?php 
function switchColor($rowValue) { 

//Define the colors first 
$color1 = '#e2e2e2'; 
$color2 = '#00ff00'; 
$color3 = '#0000ff'; 

switch ($rowValue) { 
    case 'PRIORITY': ?>
        <td style="background-color: <?php echo $color1?>" text-align: center;">
            <span style="color: #ffffff; font-size: medium;"><?php echo $rowValue?>    
            </span>
        </td>
        <?php
        break; 
    case 'ADVISORY': ?>
        <td style="background-color: <?php echo $color2?>" text-align: center;">
            <span style="color: #ffffff; font-size: medium;"><?php echo $rowValue?>    
            </span>
        </td>
        <?php 
        break; 
    default: ?>
        <td style="background-color: <?php echo $color3?>" text-align: center;">
            <span style="color: #ffffff; font-size: medium;"><?php echo $rowValue?>    
            </span>
        </td>
        <?php 
       } 
      } 
?> 

“>,”
这里

如果我能很好地理解你的问题,至少这是解决办法。如果没有,请告诉我。

这里



如果我能很好地理解你的问题,至少这是解决办法。如果没有,请告诉我。

您也可以使用引导的表类,并在行级别上指定将要传递给$rowValue变量的内容?是这样吗?@Varin是的,这是正确的,伙计们,这不是一个重复的问题,这是一个涉及从服务器端生成的代码的问题,而另一个问题,标记为这一问题的重复,是关于客户端函数的。很明显,这两个问题都是关于同一个PHP/Wordpress项目的,但它们是完全不同的项目,我恳请您在结束一个问题之前多加注意。您还可以使用bootstrap的表类并在行级别上分配将传递给$rowValue变量的内容?是这样吗?@Varin是的,这是正确的,伙计们,这不是一个重复的问题,这是一个涉及从服务器端生成的代码的问题,而另一个问题,标记为这一问题的重复,是关于客户端函数的。很明显,这两个问题都是关于同一个PHP/Wordpress项目的,但它们是完全不同的项目,我恳请您在结束问题之前多加注意。此解决方案重构了一个分离良好的函数,并在其中包含HTML生成。因此,无法将此答案告知用户。如果您想改进代码的结构,这是一个很好的方法,但是您用了错误的方法。让switchColor保持原样以便以后使用,不要将其专用于此特定用例。相反,编写一个HTML生成函数,该函数将颜色作为参数,并在适当的位置回显该颜色(唯一的差异)。然后echo-generateColoredTag(switchColor(strip_标签($category[0]['status']));此解决方案重构一个分离良好的函数,并在其中包含HTML生成。因此,无法将此答案告知用户。如果您想改进代码的结构,这是一个很好的方法,但是您用了错误的方法。让switchColor保持原样以便以后使用,不要将其专用于此特定用例。相反,编写一个HTML生成函数,该函数将颜色作为参数,并在适当的位置回显该颜色(唯一的差异)。然后echo-generateColoredTag(switchColor(strip_标签($category[0]['status']));询问者要求语法将内容输入到样式标记的背景色值中。他显然是个初学者,让我们来回答这个问题,并给他语法。@Pierre Granger单元格是动态填充内容的,我无法知道哪个单元格中会有“PRIORITY”一词。我不确定我是否理解你的答案。忘记第一部分,这是一个没有php的例子。你需要的是第二部分。您的行中存储了“优先级”或“建议”,对吗?比如$row['priority-type']之类的?“所以你只需要动态地用类名写就可以了。”皮埃尔·格兰杰,首先非常感谢你试图帮助我。我的参考代码是上面的代码,表中单元格的文本是从PHP获取的,我不以静态方式存储它。不幸的是,你的解释对我来说很难理解。Lajos Arpad提供的解决方案确实有效,因此当“优先级”一词出现在单元格中时,单元格正在改变背景颜色,我现在唯一的问题是文本已经消失,因此,必须检查PHP sintax以显示文本,我会很好。@Pierre Granger我遵循了Lajos Arpad的解决方案,它实际上工作得很好,但是我想感谢您
<td style="background-color: <?php echo switchColor(strip_tags($category[0]['status'])); ?>; text-align: 
center;">