私はactiveCheckBoxListを生成するためにこのコードを持っています:
<?php
echo CHtml::activeCheckBoxList($model,
'selected',
CHtml::listData(AuthItem::model()->findAllByAttributes(array('type'=>2)),
'name',
'name'),
array('unCheckValue'=>'Off',
'labelOptions'=>array('style'=>'display:inline'))
);
?>
ただし、非表示のフィールドはレンダリングされず、フォームを送信するときに、チェックされたフィールドの値のみが $_POST['User']['selected'] で送信されます。
私は独自の方法でそれを解決し、おそらくドロップダウンボックスに切り替えて、値を1つだけに変更しますが、これはまだ興味深いものです. 何か案は?
最初の試行: OK、だから私はそれをに変更しようとしました
'uncheckValue'=>'Off'
unCheckValue という名前でチェックボックスの属性として生成されたのは事実ですが、現在はそうではありませんが、各チェックボックスの非表示フィールドはまだありません。
ただし、非表示フィールドは生成されますが、CheckBoxList全体に対して1つだけです...各チェックボックスに対して非表示フィールドが生成されると予想していました。ID = 'Option_1'、$_POST で 'Option_1'=>'Off' を見つけますか?
foreach を実行して実行できるように: (疑似コード)
foreach(Checkbox)
if(Value = 'Off') deactivate();
else activate()