首先看看遇到的問題,看圖:
phpcms V9頁面loop標簽$n變量不明問題:
一個JS,用category標簽loop循環出網站行業分類,缺省情況為‘綜合服務’一欄被選中,有一個class='open',其他為未選中狀態,這里可以用v9的$n進行處理,看代碼:
注意,為了防止網站對html跟php代碼的轉換,這里在li標簽及php標簽內加了一個小點,下同.
- ...(省略前面部分代碼)
- {loop $data $k $v}
- <.li>$n==1}class='open'{/if}>{$v[catname]}<./li> <.li style="list-style: none">
- ...(省略后面部分代碼)
這里這個$n是v9本身就存在的,無需聲明就可以直接使用的一個循環變量,官方默認模板也是直接使用,按理說這行代碼不存在問題,但是結果是上圖所有的catname都處于選中狀態,把{$n}打印出來 全部是1,一下子想不明白為什么,上網問了一下網友,網友給出的答案是他的$n是正常++的,于是我把{if}條件寫到外面,結果$n還是恒為1,不知原因何在,為了解決這個問題,Cesc自行增加了一個變量$a,看代碼:
- ...(省略前面部分代碼)
- <.?php $a = 0;?>
- {pc:content action="category" catid="11" num="25" siteid="$siteid" order="listorder ASC"} //Vevb.com
- {loop $data $k $v}
- <.?php $a++; ?>
- <.li>{$v[catname]}<./li> <.li style="list-style: none">
- ...(省略后面部分代碼)
這里 可以直接在模板內部使用原生php代碼 定義一個++的$a變量,當程序循環生成頁面的時候$a隨著loop自增,最終得到上圖的效果,但是為什么loop的時候會出現$n不自增,始終為1的情況,有待考證.
新聞熱點
疑難解答