表格行和表格数据中的样式的回显

时间:2012-02-17 03:26:33

标签: php

<tr <?php if($isOverDeadline)
    {
      echo ' style="background-color:#CC3300"';
    }
  ?>><td width="250" <?php
      if($isOverDeadline)
      {
    echo ' style="color:#fff"';
      }
      ?>><?php echo $something; ?> </td></tr>

我发现tr和td中的嵌套php块不起作用。有人能告诉我出了什么问题吗?

3 个答案:

答案 0 :(得分:1)

* 检查isOverDeadline是true还是false *

<?php $isOverDeadline = true; ?>
<tr <?php if($isOverDeadline)
    {
      echo ' style="background-color:#CC3300"';
    }
  ?>><td width="250" <?php
      if($isOverDeadline)
      {
    echo ' style="color:#fff"';
      }
      ?>><?php echo $something; ?> </td></tr>

答案 1 :(得分:1)

我过去通常做的是为了避免这些可能的问题:

<?php

    // This is merely a convenience method for short circuiting,
    // you could use print() as it always returns 1, however e()
    // is just shorter.
    function e($arg)
    {
        echo $arg;
        return true;
    }

    $isOverDeadline = true;
    $something = "Hello world";

?>

<tr style="<?php $isOverDeadline and e('background-color: #cc3300;'); ?>">
    <td style="<?php $isOverDeadline and e('background-color: #ffffff;'); ?>" 
        width="250"><?php e($something); ?></td>
</tr>

这使用short circuit evaluation来最小化内联PHP。正如你所看到的,一些IDE或语法hilighter会对它进行barf,但是我运行NetBeans并且看起来不错。

请记住,当$isOverDeadline为false时,我的示例将导致空样式属性,但您可以根据需要进行修改(生成代码看起来更干净,无需处理前置空格等。< / em>的)

您甚至可以复制else

<tr style="background-color: <?php ($isOverDeadline and e('#f00')) or e('#0ff'); ?>"></tr>

其中红色为真,青色为假。

答案 2 :(得分:0)

你应该像这样逃避双引号     echo'style = \“background-color:#CC3300 \”';