Yii chekboxes破坏HTML表单的数组

时间:2013-05-23 10:32:03

标签: php yii

我有一个表格列表,用于定义的附件列表,比现有形式更简单,如下所示:

echo CHtml::activeCheckBox($accessory, 'bidirectional[]', array('checked'=>$accessory->bidirectional));

我以这种方式构建表单,以便我可以通过jQuery动态添加新行,而不必在所有元素中摆弄索引位置。

我得到的问题是activeCheckBox为了在活动记录中设置0而产生两个字段。当我来重建表单时,这会导致问题,因为我实际转换的元素有两个条目:

array(9) { ["bidirectional"]=> array(2) { [0]=> string(1) "0" [1]=> string(1) "1" } }

对于后者的条目,它拥有行,因此打破了我的所有编程。

无论如何,Yii中的表单列表都可以轻松完成动态索引,还是必须回到使用静态索引?

1 个答案:

答案 0 :(得分:0)

默认情况下,yii activeCheckBox会生成隐藏输入,因此在提交表单值时始终会设置。在您的情况下,隐藏的输入会破坏索引。

要保持动态索引隐藏输入,应删除。缺点是你不再拥有“未经检查”的价值。要禁用取消选中值,只需将uncheckValue设置为null

echo CHtml::activeCheckBox($accessory, 'bidirectional[]', array(
    'checked'=>$accessory->bidirectional,
    'uncheckValue' => null
    ));