[英]putting inline style using ternary operator php
我试图基于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>
但是简单的内联样式效果很好。
您在条件之前缺少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" ?>'>
不
<?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;'"); ?>
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.