ThinkPHP中html:list标签用法分析


Posted in PHP onJanuary 09, 2016

本文实例分析了ThinkPHP中html:list标签用法。分享给大家供大家参考,具体如下:

<html:list id="checkList" name="user" style="list" checkbox="true" action="true" datasource="list" show="id:编号|8%,title:标题:edit,content:内容,create_time|toDate='Y-m-d H#i#s':添加时间,status|getStatus:状态" actionlist="forbid|resume:禁用|恢复,edit:编辑" />

ThinkPHP的html标签库中的list标签功能强大,但没有文档.只好看源码了.马马虎虎看了下,大概如下:

datasource和show必须要,datasource是数据源名称,也就是assign所指向的变量,show是最复杂的,等会再讲

pk是主键名,默认为id;style是css样式的class,因为整个list标签会被编译成table,比如这里为mylist,那么样式表中的table.mylist样式就会用在这;checkbox是否显示复选框;action是否显示操作列

show部分:用逗号分隔不同的字段,如:

id:编号|8%,account:用户名|90px:edit:账号,phone:地址,remark:备注,status|getStatus:状态

每字段中,以冒号为分隔符,可以分为几部分,每部分中可以再以|分隔,

第一部分:id,表示为结果集中的id字段,status|getStatus,表示status字段,但是要经过getStatus函数处理,这儿的函数可以是php自带函数,也可以是thinkphp的common/functions.php中的函数,也可以是项目目录conf/common.php中的自定义函数
第二部分:编号|8%表示标题行中显示字段为标题,宽度为8%,用户名|90px中的90px也是宽度
第三部分:如edit,表示javascript的edit函数,其参数为主键值,如id为1的用户,用户名(account)处的显示值为一个链接,点击后会执行javascript:edit(1);
第四部分:这部分一般不用设置,如账号,表示account(用户名)标题行中的"用户名"鼠标移到上面后会显示"按账号排序",而如果不设置的话,是"按用户名排序",也就是说不设置的话"按"和"排序"中间的几个字是标题显示一样的.

再说actionlist,如果设置了action="true",但是没有设置actionlist的话,就会显示默认的"编辑"和"删除"操作,参数都是主键的值.以我们自设的函数来讲,比如设为changePassword:修改密码,这儿就会变成类似

<a href="javascript:changePassword('1')>修改密码</a>

如果有|,就有些特殊了,目前的html标签库强制把这种情况解释为status对应的操作,也就是说,datasource中必须有一个status字段,这个字段flase,那么显示|前的部分,否则为后部分,具体说:forbid|resume:禁用|恢复,如status为0,则<a href="javascript:forbid('1');>禁用</a>,否则为<a href="javascript:resume('1');>恢复</a>

总的来说,html:list功能很不错,特别是其中可以自定每列宽度很好.但是还存在一些不足之处或一些开发者需要注意的地方:

1. actionlist中如有|,就与datasource中的status字段挂勾,这个很不爽.因为一来状态可能不止两种,二来其他的字段可能也需要根据情况显示不同的文字执行不同的操作.
2. 链接用javascript表示,有时还行,但有时更希望直接用url表示,比如<a href="user/edit/id/1">编辑</a>
3. 链接中的javascript函数命名和某些html元素命名很简单,有可能会与某些js脚本或html元素命名冲突,函数名如del,change,edit,over,out等,html元素如checkbox的id为check
4. 标题的按XX排序的功能不能禁用.有很多时候并不需要这种功能,特别是不需要每行都有这种功能.当然,可以在js函数中修改.
5. 上述的js函数都不是在标签中定义,而只是调用.函数定义在自己的js脚本中,我是直接用的thinkphp的RABC的示例,所以也没研究具体的js文件,暂时也不想研究了.不过大家如果增加了自定义的操作,那就得自己写出js函数哟

TP的标签库是个好东西。

例如,一个包含复选框的标签列表可以这样写:

<html:list id="list" name="user" datasource="info" show="id:ID,username:用户名,value:用户身份,fullname:真实姓名,sex:性别,tel:联系电话,class:班级,home:宿舍" checkbox="true" style="list" action="true" actionlist="edit:编辑,delarticle:删除,sh:审核"/>

id和name就不多说了
datasource是PHP代码传过来的内容信息
show:""里面是表格的列信息
id:ID代表datasource里,字段名为id的信息,显示在列名为ID的列下

如果是
articleTitle:文章标题:function

代表的意思是字段为articleTitle下的内容显示在"文章标题"这个列下,同时,为每个“文章标题”添加了一个javascript:function("主键")的链接,用于其他操作

checkbox="true"代表显示复选框
style="list"代表使用list的风格。
action="true"代表显示操作列
actionlist="edit:编辑,delarticle:删除,sh:审核"代表操作列的内容

格式:

执行函数:显示名称。

希望本文所述对大家基于thinkPHP框架的PHP程序设计有所帮助。

PHP 相关文章推荐
生成ubuntu自动切换壁纸xml文件的php代码
Jul 17 PHP
ubuntu下编译安装xcache for php5.3 的具体操作步骤
Jun 18 PHP
PHP设置图片文件上传大小的具体实现方法
Oct 11 PHP
PHP英文字母大小写转换函数小结
May 03 PHP
php中error与exception的区别及应用
Jul 28 PHP
基于php实现七牛抓取远程图片
Dec 01 PHP
两种php实现图片上传的方法
Jan 22 PHP
php结合redis高并发下发帖、发微博的实现方法
Dec 15 PHP
PHP获取路径和目录的方法总结【必看篇】
Mar 04 PHP
php生成毫秒时间戳的实例讲解
Sep 22 PHP
Laravel 5.4.36中session没有保存成功问题的解决
Feb 19 PHP
php+js实现的无刷新下载文件功能示例
Aug 23 PHP
thinkphp中字符截取函数msubstr()用法分析
Jan 09 #PHP
Yii2框架引用bootstrap中日期插件yii2-date-picker的方法
Jan 09 #PHP
yii2框架中使用下拉菜单的自动搜索yii-widget-select2实例分析
Jan 09 #PHP
yii2中使用Active Record模式的方法
Jan 09 #PHP
YII2.0之Activeform表单组件用法实例
Jan 09 #PHP
yii2中添加验证码的实现方法
Jan 09 #PHP
PHP中的数组处理函数实例总结
Jan 09 #PHP
You might like
zen cart新进商品的随机排序修改方法
2010/09/10 PHP
PHP URL路由类实例
2013/11/12 PHP
php实现将字符串按照指定距离进行分割的方法
2015/03/14 PHP
PHP的几个常用加密函数
2016/02/03 PHP
PHP判断密码强度的方法详解
2017/05/26 PHP
CSS心形加载的动画源码的实现
2021/03/09 HTML / CSS
JavaScript地图拖动功能SpryMap的简单实现
2013/07/17 Javascript
JavaScript中的原型和继承详解(图文)
2014/07/18 Javascript
用Jquery.load载入页面后样式没了页面混乱的解决方法
2014/10/20 Javascript
JS实现自适应高度表单文本框的方法
2015/02/25 Javascript
javascript动态添加删除tabs标签的方法
2015/07/06 Javascript
jQuery+AJAX实现遮罩层登录验证界面(附源码)
2020/09/13 Javascript
JavaScript实现复制内容到粘贴板代码
2016/03/31 Javascript
JavaScript实现Base64编码转换
2016/04/23 Javascript
基于Bootstrap的UI扩展 StyleBootstrap
2016/06/17 Javascript
jQuery实现的右下角广告窗体跟随效果示例
2016/09/16 Javascript
JavaScript数组去重的几种方法效率测试
2016/10/23 Javascript
JS实现物体带缓冲的间歇运动效果示例
2016/12/22 Javascript
js中关于Blob对象的介绍与使用
2019/11/29 Javascript
js中switch语句的学习笔记
2020/03/25 Javascript
Vue实现点击导航栏当前标签后变色功能
2020/08/19 Javascript
Python函数中定义参数的四种方式
2014/11/30 Python
Python实现带百分比的进度条
2016/06/28 Python
Flask框架的学习指南之制作简单blog系统
2016/11/20 Python
Python cookbook(数据结构与算法)对切片命名清除索引的方法
2018/03/13 Python
Python OpenCV处理图像之滤镜和图像运算
2018/07/10 Python
Python中Numpy ndarray的使用详解
2019/05/24 Python
pytorch中的卷积和池化计算方式详解
2020/01/03 Python
Django 批量插入数据的实现方法
2020/01/12 Python
CSS3中Animation属性的使用详解
2015/08/06 HTML / CSS
《小池塘》教学反思
2014/02/28 职场文书
领导干部廉政自律承诺书
2014/05/26 职场文书
基层党员学习党的群众路线教育实践活动心得体会
2014/11/04 职场文书
工程部岗位职责范本
2015/04/11 职场文书
反邪教观后感
2015/06/11 职场文书
幼儿园教学反思范文
2016/03/02 职场文书