【问题标题】:CheckBoxList check all by default yiiCheckBoxList 默认全选 yii
【发布时间】:2013-05-11 13:43:39
【问题描述】:

我正在像这样使用 checkBoxList-

CHtml::checkBoxList('Interests', $selectedInterests, CHtml::listData($interests, 'interest_id','interest'), array('uncheckValue'=>'0',''checkAll' => 'Check all'));

我已经在使用“选中所有”框的选项,但我希望在用户第一次访问该页面时默认选中所有框。然后他们可以取消选中那些不适用的。

当用户第一次使用 Yii 的复选框列表访问页面时,如何默认选中所有框?

【问题讨论】:

    标签: yii checkboxlist


    【解决方案1】:

    您应该将 $selectedInterests 中的 checkBoxList 的所有值作为数组传递。 我现在无法对其进行测试,但可能应该可以:

    CHtml::checkBoxList('Interests', CHtml::listData($interests, 'interest_id','interest_id'), CHtml::listData($interests, 'interest_id','interest'), array('uncheckValue'=>'0',''checkAll' => 'Check all'));
    

    查看该方法的源代码,您应该在这一行返回 true:

    $checked=!is_array($select) && !strcmp($value,$select) || is_array($select) && in_array($value,$select);
    

    其中 $select 是您的 $selectedInterest,而 $value 在您的情况下是您的每个 'interest_id' 属性。

    【讨论】:

      【解决方案2】:

      checkBoxList 有三个参数。

      1. 第一个参数是字段名
      2. 第二个参数是选定键的数组。此参数使复选框列表被选中。
      3. 第三个参数是选项数组

      示例代码:

      $books = CHtml::listData(Book::model()->findAll(), 'id', 'name');
      $selected_keys = array_keys(CHtml::listData( $model->books, 'id' , 'id'));
      echo CHtml::checkBoxList('Author[books][]', $selected_keys, $books);
      

      我的博文中提供了更多详细信息: How to make Yii checkBoxList selected

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-04-23
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2014-10-11
        相关资源
        最近更新 更多