2013-05-13 55 views
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语句的东西可能?

回答

1

事前:未经测试。

Smarty支持PHP min函数。所以,你可以这样做:

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

作为一个说明从Smarty的文档{math}

{}数学在性能上昂贵的功能,因为它使用PHP的eval()函数。在PHP中进行数学计算要高效得多,因此只要有可能,在脚本中进行数学计算并将结果分配给模板。

+1

简单有效,效果很好,谢谢! – Jovano 2013-05-13 13:24:16