我正在尝试根据php变量的值添加css内联样式。 我尝试使用三元运算符,并且我将变量值转换为float。但是css没有按预期应用。
<tbody>
<?php
$totalLeaveTaken = 0.00;
$totalBalance = 0.00;
foreach ($GetEmployeeLeaveBalance as $member):
$totalLeaveTaken += $member['usedDays'];
$totalBalance += $member['Remaining_Leave_Days'];
$leaveBalance = floatval($member['Remaining_Leave_Days']);
?>
<tr>
<td><?php echo $member['title']; ?></td>
<td><?php echo $member['maxDays']; ?></td>
<td><?php echo $member['usedDays']; ?></td>
<!-- <td><?php echo gettype($leaveBalance);?></td> -->
<td
<?php
($leaveBalance < 0) ?
"style='background-color:red;'" : "style='background-color:green;'"
?>
>
<?php echo $member['Remaining_Leave_Days']; ?>
</td>
</tr>
<?php endforeach; ?>
<tr>
<td></td>
<td></td>
<td style="background-color: #33CCFF; font-weight: bold;">Total: <?php echo number_format($totalLeaveTaken, 2); ?></td>
<td style="background-color: #33CCFF; font-weight: bold;">Total: <?php echo
number_format($totalBalance, 2); ?></td>
</tr>
</tbody>
但简单的内联样式工作正常。
答案 0 :(得分:1)
您在条件之前缺少echo命令。 基本上,如果条件返回true或false,则返回语句,而不必回显语句。
<?php
echo ($leaveBalance < 0) ? "style='background-color:red;'" : "style='background-color:green;'"
?>
旁注,更好的做法:
由于两个返回的字符串都是样式,重复它没有意义(开发人员很懒:))。所以你可以简单地写一下:
<td style='background-color: <?php echo ($leaveBalance < 0) ? "red" : "green" ?>'>
答案 1 :(得分:1)
不
<?php
($leaveBalance < 0) ? "style='background-color:red;'" : "style='background-color:green;'"
?>
但
<?php
echo (($leaveBalance < 0) ? "style='background-color:red;'" : "style='background-color:green;'");
?>
或
<?= (($leaveBalance < 0) ? "style='background-color:red;'" : "style='background-color:green;'"); ?>