我有这个代码来生成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个值,但这仍然很有趣。有什么想法吗?
首先尝试: 好的,所以我试着把它改成
'uncheckValue'=>'Off'
确实,它名为unCheckValue,它是作为复选框的属性生成的,现在它不是,但是每个复选框仍然没有隐藏字段。
然而,生成了隐藏字段,但整个CheckBoxList只有一个... 我希望它为每个复选框生成一个隐藏字段,在提交时有一个未选中的复选框。 ID ='Option_1',在$ _POST中,我会发现'Option_1'=&gt;'关'?
所以我可以做一个foreach并做:(伪代码)
foreach(Checkbox)
if(Value = 'Off') deactivate();
else activate()
答案 0 :(得分:0)
将unCheckValue
更改为uncheckValue
由于拼写错误unCheckValue
成为复选框的属性。
<?php
echo CHtml::activeCheckBoxList($model,
'selected',
CHtml::listData(AuthItem::model()->findAllByAttributes(array('type'=>2)),
'name',
'name'),
array('uncheckValue'=>'Off',
'labelOptions'=>array('style'=>'display:inline'))
);
?>