我可以使用if / else更改li元素上的样式吗

时间:2018-10-23 22:56:46

标签: php

<?php if($notification['user_status']==0){?>
    <li  style="background-color: #edf2fa;">
<?php } else { ?>
    <li  style="background-color: white;">
<?php } ?>
    <a id="notification_list" href="index.php?page=<?php echo $page?>&act=notification">
    <?php echo $notefor; ?><small style="color:#AAA; padding-left:10px;">
    <?php echo $time_frame;?></small>
    </a></li>

第一个if语句可以正常运行,而else则不能运行,有没有办法做类似的事情。

3 个答案:

答案 0 :(得分:2)

当然, 但是,请尝试将颜色放在单独的变量中,先执行PHP逻辑,然后再使用该变量一次,而不是重写整个li

示例:

<?php 
$color = 'white';
if($notification['user_status']==0){
$color = '#edf2fa';
}
?>
<li  style="background-color: <?php echo $color; ?>;">

答案 1 :(得分:1)

假设您正在运行php 5.4>

首先,这些代码可以使用一些清理方法。

<?php

if ( $notification['user_status'] == 0 ) {
    $backgroundColor = '#edf2fa';
}else {
    $backgroundColor = '#FFFFFF';
}

?>

<li  style="background-color: <?= $backgroundColor ?>;">
    <a id="notification_list" href="index.php?page=<?= $page ?>&act=notification">
        <?= $notefor; ?>
        <small style="color:#AAA; padding-left:10px;"><?= $time_frame;?></small>
    </a>
</li>

else代码块仅在if语句中的表达结果等于false时运行。因此,如果您希望运行else代码,请检查$notification['user_status']是否实际上不等于0

答案 2 :(得分:0)

您可以在类似以下内容的内部使用if语句:

<li style="background-color: <?php ($notification['user_status'] == 0) ? print '#edf2fa' : print 'white' ?>">
  <a id="notification_list" href="index.php?page=<?php echo $page ?>&act=notification">
    <?php echo $notefor; ?>
    <small style="color:#AAA; padding-left:10px;">
      <?php echo $time_frame; ?></small>
  </a>
</li>