0

这是我的代码:

<td class="bezcat bg{math equation="floor(x/8)+1" x=$dag.wp.0}">{$dag.wp.1}<br/><i>({$dag.wp.0})</i></td>

我的代码所做的是根据数字 (x) 计算一个值并为其创建一个类名(bg1、bg2、bg3、bg4 或 bg 5)。每个类名都有自己的背景色,低 x ( x<=8) 将具有绿色背景色,大 x ( x>=40) 将具有红色背景色。

我的计算效果很好,除了一点。我在我的 css 中只命名了 5 个类名(bg1 到 bg5),所以当计算的值大于 5 时(假设用x=100),我的类名将是 bg12,并且在我的 css 中没有描述。当我的计算值大于 5 时,执行该操作的最佳方法是什么,我的类名仍然是 bg5。可能带有 if 语句的东西?

4

1 回答 1

1

事先:这是未经测试的。

Smarty 支持 PHP min函数。所以你可以使用这个:

{math equation="min(5, floor(x/8)+1)" x=$dag.wp.0}

作为 Smarty 文档{math}的注释:

由于使用了 php eval() 函数,{math} 是一个性能昂贵的函数。在 PHP 中进行数学计算效率更高,因此尽可能在脚本中进行数学计算并将结果分配()到模板。

于 2013-05-13T12:59:57.703 回答