在PHP中更改文本颜色时转义特殊字符

在PHP中更改文本颜色时转义特殊字符,php,Php,在“我的表格”的“状态”列中,可能有3个值(已过账、取消、尚未过账) 每个值都有其指定的颜色。我使用以下代码实现了这一点: if($posted == 'posted') { $posted = "<b style='color:blue'>posted</b>"; } elseif($posted == 'cancel')

在“我的表格”的“状态”列中,可能有3个值(已过账、取消、尚未过账)

每个值都有其指定的颜色。我使用以下代码实现了这一点:

if($posted == 'posted')
                {
                $posted = "<b style='color:blue'>posted</b>";

                }
                elseif($posted == 'cancel')
                {
                $posted = "<b style='color:red'>cancel</b>";
                }
                else
                {
                $posted = "<b style='color:green'>not yet posted</b>";

                }
该数组如表所示:

foreach($db_array as $key => $value)
            {
                if(($key % 2) == 0)
                {

                ?>
                        <tr class='hoverstate2' onclick="clicked('<?php echo $value['serial_no']; ?>','<?php echo $value['posted']; ?>','<?php echo $value['model']; ?>','<?php echo $value['desc']; ?>','<?php echo $value['series']; ?>','<?php echo $value['refno']; ?>','<?php echo $value['custname']; ?>','<?php echo $value['client_code']; ?>','<?php echo $value['ctelno']; ?>','<?php echo $value['contpers']; ?>','<?php echo $value['brand']; ?>','<?php echo $value['unit_type']; ?>','<?php echo $value['posted']; ?>','<?php echo $value['address']; ?>','<?php echo $value['city']; ?>')">

                        <td ><?php echo $value['serial_no']; ?></td>
                        <td ><?php echo $value['model']; ?> </td>
                        <td ><?php echo $value['desc']; ?></td>
                        <td ><?php echo $value['posted']; ?></td></tr>
                <?php
                }

有很多方法可以解决你的问题。大概是这样的:

switch($posted){
  case 'posted':
    $posted = "<b class='posted'>posted</b>";
    break;
  case 'cancel':
   $posted = "<b class='cancel'>cancel</b>";
    break;
  default:
   $posted = "<b class='default'>not yet posted</b>";
   break;
}
在css中:

.posted{
  color:blue;
}

.cancel{
 color:red;
}

.default{
 color:green;
}
在PHP中,您可以尝试使用switch语句,而不是使用if-else语句。您可以实现以下目标:

switch($posted){
  case 'posted':
    $posted = "<b class='posted'>posted</b>";
    break;
  case 'cancel':
   $posted = "<b class='cancel'>cancel</b>";
    break;
  default:
   $posted = "<b class='default'>not yet posted</b>";
   break;
}
开关($posted){
个案‘已张贴’:
$posted=“posted”;
打破
“取消”案例:
$posted=“取消”;
打破
违约:
$posted=“尚未过帐”;
打破
}

看,我改变了你的风格,把它放到了课堂上。更干净,在javascript中,您只需调用所需的类。

哪里有
$posted
以及如何应用javascript?我觉得你的解决方案可能比你现有的要简单得多done@Soundz请查看我的编辑。你能设置一个小提琴吗?问题仍然存在。我逃过了它。当我提醒我需要传递它的值时,会提醒整个代码“已传递”,而不仅仅是“已传递”。你确定你传递的是来自SQL的已传递值吗??而不是$posted,它是html标记。。我确定您不想传递html标记。@user2574957 alert不会解释您的代码。它将显示您传递的整个代码。试着在你的浏览器中写下它,并检查它的反应。我重复了它,它只显示“发布”的值。。。当传递到javascript时,变量$posted的值变为b class='posted'>posted“当我不使用代码给文本上色时,它工作得很好。请仔细检查您的代码。您正在使用变量$posted仔细检查逻辑。请记住$posted用于HTML,而不是要在javascript中传递的值。
switch($posted){
  case 'posted':
    $posted = "<b class='posted'>posted</b>";
    break;
  case 'cancel':
   $posted = "<b class='cancel'>cancel</b>";
    break;
  default:
   $posted = "<b class='default'>not yet posted</b>";
   break;
}