在當(dāng)初Smarty很菜的時(shí)候,用PHP寫了個(gè)微型論壇,有一個(gè)需求是在樓主后面顯示當(dāng)前是幾樓回復(fù),如下圖:
創(chuàng)新互聯(lián)公司于2013年成立,是專業(yè)互聯(lián)網(wǎng)技術(shù)服務(wù)公司,擁有項(xiàng)目做網(wǎng)站、成都做網(wǎng)站網(wǎng)站策劃,項(xiàng)目實(shí)施與項(xiàng)目整合能力。我們以讓每一個(gè)夢(mèng)想脫穎而出為使命,1280元義安做網(wǎng)站,已為上家服務(wù),為義安各地企業(yè)和個(gè)人服務(wù),聯(lián)系電話:028-86922220
我當(dāng)時(shí)首先想到用 iteration(邊界符為“<{}>”):
<{foreach from=$res item=row name=thread}>
<{if $smarty.foreach.thread.iteration-1 eq 0}>
樓主
<{else}>
<{$smarty.foreach.thread.iteration-1}>樓</font>
<{/if}>
<{/foreach}>
這里foreach中自帶的屬性iteration,是指當(dāng)前foreach循環(huán)的次數(shù),從1開始(第一個(gè)不是0,而是1)
其實(shí)這樣寫有個(gè)很大的問題,因?yàn)檫@里的 iteration 只作用于當(dāng)前這個(gè)foreach,而當(dāng)你翻頁,進(jìn)入下一頁的時(shí)候問題就來了,如圖:
看到了問題嗎?第二頁首個(gè)回復(fù)的作者成了樓主?。?!
好了,接下來就給出我自己的方法,其實(shí)就是用了 html中 的<input type="hidden">,在其中填入自增計(jì)算,在foreach開始之前assign一個(gè)變量,初始值在控制器里設(shè)置好,代碼如下:
控制器:
計(jì)算出當(dāng)前要顯示的頁面的 offset
//$fenyePage->pageNow 當(dāng)前頁數(shù)值
//$fenyePage->pageSize 每頁顯示的樓層數(shù) (我這里設(shè)置的是3)
//通過計(jì)算就得出每一頁開始時(shí) 樓層($floor)的起始值$floor=($fenyePage->pageNow-1)*$fenyePage->pageSize;
$smarty->assign("flr",$floor);
TPL:
<{assign var="floor" value=$flr}>
<{foreach from=$res item=row name=thread}>
<{if $floor eq 0}>
樓主
<{else}>
<{$floor}>樓</font>
<{/if}>
<input type="hidden" value="<{$floor++}>" />
<{/foreach}>
這樣一來,就沒問題了,即使翻頁,樓層也會(huì)接著上一頁的樓層計(jì)數(shù)繼續(xù)顯示。
分享題目:Smartyforeach添加論壇樓層計(jì)數(shù)(counter)-創(chuàng)新互聯(lián)
網(wǎng)站URL:http://aaarwkj.com/article20/hseco.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站設(shè)計(jì)、響應(yīng)式網(wǎng)站、全網(wǎng)營(yíng)銷推廣、手機(jī)網(wǎng)站建設(shè)、靜態(tài)網(wǎng)站、企業(yè)網(wǎng)站制作
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)
猜你還喜歡下面的內(nèi)容