修改Html :: active复选框列表以打印列中的复选框

时间:2012-06-26 13:46:35

标签: php html yii

我在一列中打印了复选框列表,但是我需要它在列中打印,并且在每列中应该是例如10个复选框。 我的PHP代码:

//$user_cats- array of categories. 
    echo CHtml::activecheckBoxList($categories,
           'selected['.$parent->id.']',
        CHtml::listData(
                $user_cats,
                'id',
                'title',
                ''
        ));

也许有一种方法可以修改CHtml :: listData它可以在列中打印复选框吗?

2 个答案:

答案 0 :(得分:2)

我会做这样的事情:

CHtml::activecheckBoxList($categories,
       'selected['.$parent->id.']',
    CHtml::listData(
            $user_cats,
            'id',
            'title',                
    ), array('separator'=>'',
             'template'=>'<span class="checkbox-columns">{input} {label}</span>'),
    );

然后在我的CSS中:

span.checkbox-columns {
    float:left;
    width: 20%;
}

根据需要调整CSS,主要是宽度百分比。

答案 1 :(得分:1)

第一件事CHtml::listData生成的数据集适合在activeCheckboxListdropdownlist等中使用。

现在,如果要更改页面上复选框的显示方式,则需要将htmlOptions数组传递给activeCheckBoxList。 您可以在Yii activeCheckBoxList

上详细了解相关信息

例如:

CHtml::activecheckBoxList($categories,
       'selected['.$parent->id.']',
    CHtml::listData(
            $user_cats,
            'id',
            'title',                
    ), array('separator'=>'--')
    );

因此,默认情况下,如果您未指定分隔符,则使用换行符,但如果您提供换行符,则会使用该分隔符。 此外,如果您想要添加更多样式或格式化复选框,您也可以做得更好。只需阅读文档,链接包含在上面。通过为htmlOptions数组指定其他选项,可以实现所有这些功能。