zoukankan      html  css  js  c++  java
  • 关于Yii2的checkboxList的初始选项设置问题

    先在网上找了个checkboxList的描述:

    public static function checkboxList($name, $selection = null, $items = [], $options = [])

    下面我们一一说明其中的参数及使用

    $name——设置checkbox的name
    字符串,这个用来设置生成的每个checkbox的name值,因为是生成多个checkbox,所以$name的值要以[]结尾,如果没有的话在函数内部会自动加上[]

    $selection——设置checkbox是否选中
    字符串或者数组,这个用来设置哪些checkbox为选中状态,值为checkbox中的value;如果需要多个checkbox选中那么就用数组的形式来传递多个值,如['a','b','c']

    $items——设置多个checkbox的数据源
    数组,这个用来生成各个checkbox的数据源,其中键作为checkbox的value,值作为checkbox的label

    $options
    数组,这个比较复杂,里面的参数比较多,其中有几个固定的参数:

    • tag:字符串,设置生成的所有的checkbox的容器标签,默认为div
    • unselect:字符串,当checkbox都没有选择的时候的默认值。如果设置这个,会自动生成一个以name(不带[])为名称的hidden类型的input,这个input的值就为unselect
    • encode:布尔值,设置每个checkbox的label是否需要编码,默认为true
    • separator:字符串,生成的每个checkbox html代码之间的连接字符串,默认为 ,也就是说默认生成的checkbox都是一行一个。
    • itemOptions:数组,生成每个checkbox的参数选项。这个在单独介绍checkbox函数的时候说明
    • item:回调函数,在循环生成每个checkbox表单的时候,会调用这个函数。如果设置了则使用返回值作为checkbox的表单,否则使用static::checkbox函数来生成每个checkbox表单,函数格式为:
      1. function ($index, $label, $name, $checked, $value)

    在使用activeform时,一般格式是这样的

    echo $form->field($model, 'size')->checkboxList(name,$model->allSize);

    size相当于$selection

    allSize相当于$items

    关键在于size的格式,size需要存放键值的数组,例如$items是(0=>'X',1=>'XL',2=>'2XL');我们想选的是1和2,那$selection就需要是(0=>1,1=>2);

    如果直接传(1=>'XL',2=>'2XL');会出错,可以使用array_keys()转换一下。

  • 相关阅读:
    Javaweb初试——选课系统
    Java四则运算第二次课堂完整版
    Java动手动脑03
    阅读笔记
    Java四则运算课堂测试三
    读书笔记
    Java日报10.14
    Java日报10.13
    Java动手动脑04
    2020.9.22测试
  • 原文地址:https://www.cnblogs.com/chenkeyu/p/6821174.html
Copyright © 2011-2022 走看看