ThinkPHP中html:list標(biāo)簽用法分析
本文實(shí)例分析了ThinkPHP中html:list標(biāo)簽用法。分享給大家供大家參考,具體如下:
ThinkPHP的html標(biāo)簽庫(kù)中的list標(biāo)簽功能強(qiáng)大,但沒(méi)有文檔.只好看源碼了.馬馬虎虎看了下,大概如下:
datasource和show必須要,datasource是數(shù)據(jù)源名稱,也就是assign所指向的變量,show是最復(fù)雜的,等會(huì)再講
pk是主鍵名,默認(rèn)為id;style是css樣式的class,因?yàn)檎麄€(gè)list標(biāo)簽會(huì)被編譯成table,比如這里為mylist,那么樣式表中的table.mylist樣式就會(huì)用在這;checkbox是否顯示復(fù)選框;action是否顯示操作列
show部分:用逗號(hào)分隔不同的字段,如:
id:編號(hào)|8%,account:用戶名|90px:edit:賬號(hào),phone:地址,remark:備注,status|getStatus:狀態(tài)
每字段中,以冒號(hào)為分隔符,可以分為幾部分,每部分中可以再以|分隔,
第一部分:id,表示為結(jié)果集中的id字段,status|getStatus,表示status字段,但是要經(jīng)過(guò)getStatus函數(shù)處理,這兒的函數(shù)可以是php自帶函數(shù),也可以是thinkphp的common/functions.php中的函數(shù),也可以是項(xiàng)目目錄conf/common.php中的自定義函數(shù)
第二部分:編號(hào)|8%表示標(biāo)題行中顯示字段為標(biāo)題,寬度為8%,用戶名|90px中的90px也是寬度
第三部分:如edit,表示javascript的edit函數(shù),其參數(shù)為主鍵值,如id為1的用戶,用戶名(account)處的顯示值為一個(gè)鏈接,點(diǎn)擊后會(huì)執(zhí)行javascript:edit(1);
第四部分:這部分一般不用設(shè)置,如賬號(hào),表示account(用戶名)標(biāo)題行中的"用戶名"鼠標(biāo)移到上面后會(huì)顯示"按賬號(hào)排序",而如果不設(shè)置的話,是"按用戶名排序",也就是說(shuō)不設(shè)置的話"按"和"排序"中間的幾個(gè)字是標(biāo)題顯示一樣的.
再說(shuō)actionlist,如果設(shè)置了action="true",但是沒(méi)有設(shè)置actionlist的話,就會(huì)顯示默認(rèn)的"編輯"和"刪除"操作,參數(shù)都是主鍵的值.以我們自設(shè)的函數(shù)來(lái)講,比如設(shè)為changePassword:修改密碼,這兒就會(huì)變成類似
如果有|,就有些特殊了,目前的html標(biāo)簽庫(kù)強(qiáng)制把這種情況解釋為status對(duì)應(yīng)的操作,也就是說(shuō),datasource中必須有一個(gè)status字段,這個(gè)字段flase,那么顯示|前的部分,否則為后部分,具體說(shuō):forbid|resume:禁用|恢復(fù),如status為0,則<a href="javascript:forbid('1');>禁用</a>,否則為<a href="javascript:resume('1');>恢復(fù)</a>
總的來(lái)說(shuō),html:list功能很不錯(cuò),特別是其中可以自定每列寬度很好.但是還存在一些不足之處或一些開發(fā)者需要注意的地方:
1. actionlist中如有|,就與datasource中的status字段掛勾,這個(gè)很不爽.因?yàn)橐粊?lái)狀態(tài)可能不止兩種,二來(lái)其他的字段可能也需要根據(jù)情況顯示不同的文字執(zhí)行不同的操作.
2. 鏈接用javascript表示,有時(shí)還行,但有時(shí)更希望直接用url表示,比如<a href="user/edit/id/1">編輯</a>
3. 鏈接中的javascript函數(shù)命名和某些html元素命名很簡(jiǎn)單,有可能會(huì)與某些js腳本或html元素命名沖突,函數(shù)名如del,change,edit,over,out等,html元素如checkbox的id為check
4. 標(biāo)題的按XX排序的功能不能禁用.有很多時(shí)候并不需要這種功能,特別是不需要每行都有這種功能.當(dāng)然,可以在js函數(shù)中修改.
5. 上述的js函數(shù)都不是在標(biāo)簽中定義,而只是調(diào)用.函數(shù)定義在自己的js腳本中,我是直接用的thinkphp的RABC的示例,所以也沒(méi)研究具體的js文件,暫時(shí)也不想研究了.不過(guò)大家如果增加了自定義的操作,那就得自己寫出js函數(shù)喲
TP的標(biāo)簽庫(kù)是個(gè)好東西。
例如,一個(gè)包含復(fù)選框的標(biāo)簽列表可以這樣寫:
id和name就不多說(shuō)了
datasource是PHP代碼傳過(guò)來(lái)的內(nèi)容信息
show:""里面是表格的列信息
id:ID代表datasource里,字段名為id的信息,顯示在列名為ID的列下。
如果是
articleTitle:文章標(biāo)題:function
代表的意思是字段為articleTitle下的內(nèi)容顯示在"文章標(biāo)題"這個(gè)列下,同時(shí),為每個(gè)“文章標(biāo)題”添加了一個(gè)javascript:function("主鍵")的鏈接,用于其他操作
checkbox="true"代表顯示復(fù)選框
style="list"代表使用list的風(fēng)格。
action="true"代表顯示操作列
actionlist="edit:編輯,delarticle:刪除,sh:審核"代表操作列的內(nèi)容
格式:
執(zhí)行函數(shù):顯示名稱。
希望本文所述對(duì)大家基于thinkPHP框架的PHP程序設(shè)計(jì)有所幫助。
- ThinkPHP分組下自定義標(biāo)簽庫(kù)實(shí)例
- ThinkPHP模板循環(huán)輸出Volist標(biāo)簽用法實(shí)例詳解
- ThinkPHP模板Volist標(biāo)簽嵌套循環(huán)輸出多維數(shù)組的方法
- ThinkPHP自定義函數(shù)解決模板標(biāo)簽加減運(yùn)算的方法
- ThinkPHP添加更新標(biāo)簽的方法
- Thinkphp中volist標(biāo)簽mod控制一定記錄的換行BUG解決方法
- Thinkphp將二維數(shù)組變?yōu)闃?biāo)簽適用的一維數(shù)組方法總結(jié)
- thinkphp中html:list標(biāo)簽傳遞多個(gè)參數(shù)實(shí)例
- Thinkphp的volist標(biāo)簽嵌套循環(huán)使用教程
- ThinkPHP模板IF標(biāo)簽用法詳解
- ThinkPHP模板范圍判斷輸出In標(biāo)簽與Range標(biāo)簽用法詳解
- ThinkPHP模板判斷輸出Empty標(biāo)簽用法詳解
- thinkPHP2.1自定義標(biāo)簽庫(kù)的導(dǎo)入方法詳解
相關(guān)文章
PHP實(shí)現(xiàn)一個(gè)簡(jiǎn)單url路由功能實(shí)例
這篇文章主要介紹了PHP實(shí)現(xiàn)一個(gè)簡(jiǎn)單url路由功能實(shí)例,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下。2016-11-11php實(shí)現(xiàn)二叉樹中和為某一值的路徑方法
在本篇文章中我們給大家分享了php實(shí)現(xiàn)二叉樹中和為某一值的路徑方法,有需要的朋友們可以參考下。2018-10-10PHP的Yii框架中使用數(shù)據(jù)庫(kù)的配置和SQL操作實(shí)例教程
這篇文章主要介紹了PHP的Yii框架中使用數(shù)據(jù)庫(kù)的配置和SQL操作實(shí)例教程,Yii支持綁定多種數(shù)據(jù)庫(kù),文中主要對(duì)各種查詢語(yǔ)句在Yii中的使用給出了例子,需要的朋友可以參考下2016-03-03php生成N個(gè)不重復(fù)的隨機(jī)數(shù)實(shí)例
使用php生成N個(gè)不重復(fù)的隨機(jī)數(shù)的實(shí)例方法2013-11-11php解析xml 的四種簡(jiǎn)單方法(附實(shí)例)
下面小編就為大家?guī)?lái)一篇php解析xml 的四種簡(jiǎn)單方法(附實(shí)例)。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2016-07-07php實(shí)現(xiàn)文件下載功能的幾個(gè)代碼分享
我們一般實(shí)現(xiàn)下載都是調(diào)用url來(lái)下載,但是遇到ie能識(shí)別打開的文件就不能用這種方式了,比如下載一個(gè)圖片、html網(wǎng)頁(yè)等,這時(shí)就需要編程來(lái)實(shí)現(xiàn)2014-05-05php創(chuàng)建多級(jí)目錄完整封裝類操作方法
下面小編就為大家?guī)?lái)一篇php創(chuàng)建多級(jí)目錄完整封裝類操作方法。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2017-08-08PHP驗(yàn)證碼函數(shù)代碼(簡(jiǎn)單實(shí)用)
這篇文章主要分享了php中簡(jiǎn)單的驗(yàn)證碼函數(shù)實(shí)現(xiàn)代碼,代碼比較短,但效果卻不錯(cuò),喜歡的朋友可以試試2013-09-09