我一直在尝试更改值的文本颜色,具体取决于值是已批准,待定还是已拒绝。
因此,如果已批准,我希望文本颜色为绿色。 红色表示拒绝,黄色表示待处理。
$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;
答案 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>'