php checkbox插件,ThinkPHP中的select控件和checkbox控件

ThinkPHP使用了独立的模板和Action系统,带来的好处是方便,但是官网给出的示例非常少,很多用法只能一个个去翻源码,很不方便,下面说说常用的两个html控件的处理方法:

模型中没有提供的自动处理内容使用起来很不方便,比如select控件,其选中标识是"selected=selected",在模型中不能自动赋值的。要为select赋值,就必须用模板标签。,或者也行。这样select标签的赋值部分写起来就像下面这样:

selected>{$typel.title}

解释下,上面这个是一个文章分类选择的select,其中 $typel对应的是分类表,在action中的代码是

$typel=M('ArtType')

而$vo则对应的文章内容表,其中一列列名是type,内容是分类表的id号。action中初始化代码是

$name = $this->getActionName();

$model = M($name);

$id = $_REQUEST [$model->getPk()];

$vo = $model->getById($id);

这里完整的代码可以参看thinkphp的Rbac权限管理的示例。其中的节点管理就涉及了这方面的源码。

下面说说checkbox,不得不吐槽一下check的用法有点跟不上时代。大家都在数据库里面存储0,1,而checkbox提交的值是on和off(字符串),这怎么用?

这个源文件中基本上没有,但是HTML标签中有一个checkbox标签,有兴趣可以参考下HTML标签的源码,看看怎么用。下面我说说不用外部标签的一种办法:使用javascript。

思路是设置一个隐藏域来存储想提交的真正内容,而chekcbox每做一次改变,就对应的改变下隐藏域的内容。

在文档

中添加如下js代码:

代码的意思很简单,就是根据传入的checkbox的值来设置hiddenfield的值0,1。

在正文中写如下代码:

checked="checked" name="checkB" >

其中,数据库中对应的列是check列,而因为checkbox的名字和数据库中列不一样,所以提交的时候实际是提交的hidden的值,这样就实现了对数据库中值的对应。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值