如何更改动态生成值的文本颜色? - PHP

时间:2015-04-17 15:21:38

标签: php css

我一直在尝试更改值的文本颜色,具体取决于值是已批准,待定还是已拒绝。

因此,如果已批准,我希望文本颜色为绿色。 红色表示拒绝,黄色表示待处理。

$output = ""; 
$OrderStatus = array('Pending','Approved','Rejected');
/*$Approved = 'Approved';
$Reject   = 'Rejected';
$Pending = 'Pending';*/
 $statusValue = array();
 $color = "#000000";

if ($orderValue['status'] == 0) {
   $statusValue[] = $OrderStatus[0];
   $color = "#00FF00";
}
elseif ($orderValue['status'] == 1) {
   $statusValue[] = $OrderStatus[1];
   $color = "#FF9900";
}
elseif ($orderValue['status'] == 2) {
   $statusValue[] = $OrderStatus[2];
     $color = "#FF0000";
}



/*if (in_array(0, $orderValue)) {
   $statusValue[] = $OrderStatus[0];
   $color = "#00FF00";
}
elseif (in_array(1, $orderValue)) {
   $statusValue[] = $OrderStatus[1];
   $color = "#FF9900";
}
elseif (in_array(2, $orderValue)) {
   $statusValue[] = $OrderStatus[2];
     $color = "#FF0000";
}*/

要在表格中显示的代码:

   $output .= '
  <tr>  
        <td>' .'<input type="checkbox" name="orderData[]" value="'.$orderValue['order_Id'].'" />'   . '</td>
        <td>' .$orderValue['order_Id'] . '</td>
        <td>' .$orderValue['firstname'] . '</td>
        <td>' .$orderValue['lastname'] . '</td>
        <td>' .$orderValue['full_address'] . '</td>
        <td>' .$orderValue['postcode'] . '</td>
        <td>' .$orderValue['tel_no'] . '</td>
        <td>' .$orderValue['mobile_no'] . '</td>
        <td>' .$newDate . '</td>
        <td>' .$orderValue['itemName'] . '</td>
        <td>' .$orderValue['quantity'] . '</td>
        <td> <span style=\"color: '.$color.';\">' .$statusValue['0'] . '</td>'.'</span>

  </tr>';

  echo  $output;

2 个答案:

答案 0 :(得分:2)

您没有使用双引号($output .= " ... ")来插入变量,因此$color变量被视为文本(字面意思是字符串“$ color”)。另外,您使用字符串数字取消引用$statusValue数组;你需要使用没有引号的整数($statusValue[0]而不是$statusValue['0'])。

$OrderStatus = array('Pending','Approved','Rejected');
/*$Approved = 'Approved';
$Reject   = 'Rejected';
$Pending = 'Pending';*/
 $statusValue = array();
 $color = "#000000";
if (in_array(0, $orderValue)) {
   $statusValue[] = $OrderStatus[0];
   $color = "#00FF00";
}
elseif (in_array(1, $orderValue)) {
   $statusValue[] = $OrderStatus[1];
   $color = "#FF9900";
}
elseif (in_array(2, $orderValue)) {
   $statusValue[] = $OrderStatus[2];
     $color = "#FF0000";
}


$output .= '
  <tr>  
  <td>' .'<input type="checkbox" name="orderData[]" value="'.$orderValue['order_Id'].'" />'   . '</td>
  <td>' .$orderValue['order_Id'] . '</td>
  <td>' .$orderValue['firstname'] . '</td>
  <td>' .$orderValue['lastname'] . '</td>
  <td>' .$orderValue['full_address'] . '</td>
  <td>' .$orderValue['postcode'] . '</td>
  <td>' .$orderValue['tel_no'] . '</td>
  <td>' .$orderValue['mobile_no'] . '</td>
  <td>' .$newDate . '</td>
  <td>' .$orderValue['itemName'] . '</td>
  <td>' .$orderValue['quantity'] . '</td>
  <td> <span style=\"color: '.$color.';\">' .$statusValue[0] . '</span>'.'</td>

  </tr>';

  echo  $output;

我不确定$orderValue的值是什么,但我假设您希望将值存储为整数而不是字符串。您可能希望将订单状态值存储为$orderValue['status'],并使用类似的内容:

if ($orderValue['status'] == 0) {
   $statusValue[] = $OrderStatus[0];
   $color = "#00FF00";
}
elseif ($orderValue['status'] == 1) {
   $statusValue[] = $OrderStatus[1];
   $color = "#FF9900";
}
elseif ($orderValue['status'] == 2) {
   $statusValue[] = $OrderStatus[2];
     $color = "#FF0000";
}

答案 1 :(得分:0)

这里似乎是一个破碎的HTML,

<td span style=\"color: $color\">' .$statusValue['0'] . '</td>'.'</span>

尝试将其更改为,

<td> <span style=\"color: $color\">' .$statusValue['0'] . '</span></td>'