【问题标题】:How to change table attribute after printing it打印后如何更改表格属性
【发布时间】:2018-07-11 18:47:57
【问题描述】:

我正在使用以下 PHP 代码打印表格:

echo '<table> ';

echo '<tr>';

echo '<td> Cell 1';
echo '</td>';

echo '<td '.$myStyle.'> Cell 2';
echo '</td>';


echo '</tr>';

echo '</table> ';

$myStyle = 'style="color:red"';

我的问题是$myStyle 单元格属性没有赋予单元格,除非它放在它之前。有没有办法在设置$myStyle 后刷新表格以便采用新属性?而且我希望它保持我的$myStyle 变量。

【问题讨论】:

  • 这可以使用输出缓冲或 JavaScript,但是您不能更改脚本的逻辑以首先定义 $myStyle 吗?那将是最干净的方式。
  • 您为什么要这样做?你为什么不把 $myStyle 放在 echo ''; 上面
  • @Pekka 是的,我知道这是一个解决方案,但由于与进一步编码有关的原因,我不能这样做
  • 那么您可能遇到了施工问题,可能是个好主意……

标签: php css html-table


【解决方案1】:

在客户端使用 jqueryJavascript 来完成此操作。

设置目标 td 的 ID 或类属性,然后应用以下 jquery 之类的

html:

echo '<td id="mytd"> Cell 2 </td>';

jquery:

$(document.ready(function(){
$("#mytd").css("color","red");
});

【讨论】:

  • 你能举个小例子吗
【解决方案2】:

如果您在生成表格时不知道单元格使用哪种样式设置,那么最好修改页面生成,可能使用输出缓冲(笨拙的解决方案)。如果做不到这一点,您可以在标记中仅生成 &lt;td class=foo&gt;,然后,当您知道为单元格设置了什么时,生成一个 HTML 元素,例如

<style>
.foo { color: red; }
</style>

这违反了 HTML 语法规则,因为 style 元素将位于 body 元素内,但它实际上在浏览器中有效——这样的元素中的设置会影响文档,甚至影响它之前的元素。

但这当然只是一个丑陋的解决方法,适用于不适合体面的解决方案的情况。

【讨论】:

    【解决方案3】:

    使用error_reporting(E_ALL) 你会看到

    Notice: Undefined variable: myStyle in/ss.php on line 10
    Cell 1  Cell 2
    

    将此变量放在脚本顶部

    <?php
    error_reporting(E_ALL);
    
    $myStyle = 'style="color:red"';
    
    echo '<table> ';
    
    echo '<tr>';
    
    echo '<td> Cell 1';
    echo '</td>';
    
    echo '<td '.$myStyle.'> Cell 2';
    echo '</td>';
    
    
    echo '</tr>';
    
    echo '</table> ';
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-07-30
      • 1970-01-01
      • 2015-10-28
      • 1970-01-01
      • 2011-07-03
      • 2012-01-28
      • 2014-04-02
      • 1970-01-01
      相关资源
      最近更新 更多