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) は赤色になります。

1点を除いて、私の計算はうまくいきます。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}からのメモとして:

{math} は、php eval() 関数を使用しているため、パフォーマンスが高くつく関数です。PHP で計算を行う方がはるかに効率的であるため、可能な限りスクリプトで数学計算を行い、その結果をテンプレートに assign() します。

于 2013-05-13T12:59:57.703 に答える