0

チェックボックスリストを1つの列に印刷していますが、列に印刷する必要があり、すべての列にたとえば10個のチェックボックスを配置する必要があります。私のphpコード:

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

たぶん、CHtml :: listDataを変更して、列にチェックボックスを出力できるようにする方法はありますか?

4

2 に答える 2

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、主に幅のパーセンテージを調整します。

于 2012-06-26T16:10:32.277 に答える
1

まず、などCHtml::listDataでの使用に適したデータセットを生成します。activeCheckboxListdropdownlist

ここで、ページでのチェックボックスの表示方法を変更する場合は、htmlOptions配列をに渡す必要がありますactiveCheckBoxListYiiactiveCheckBoxListで詳細を読むことができます

例えば:

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

したがって、デフォルトでは、区切り文字を指定しない場合は改行が使用されますが、指定すると、代わりにその区切り文字が使用されます。また、チェックボックスをもう少しスタイルを追加したりフォーマットしたりする場合は、それを行うこともできます。ドキュメントを読むだけで、リンクは上に含まれています。htmlOptionsアレイに追加のオプションを指定することで、すべてが可能になります。

于 2012-06-26T15:10:45.157 に答える