checkboxList()的用法问题--默认勾选 [ 新手入门 ]
加载一组checkboxlist();
<?php echo $form->CheckBoxList($model,'subject',$subject)?>
然后进行勾选,之后存入数据库,其中$model是型型,$subject 是对应的数组,key=>value型,
问题:
每勾选一个复选框,在数据库中就加一条记录。也就是说每个用户可以勾选多个,也有多条记录,
当在修改这个页面的时候,我们要怎样将以前勾选的复选框自动打上对勾呢?
也就是 checkbox 的属性:checked=checked
怎样进行判断呢
共 21 条回复
-
我纠结了好久,这个是我在网上找到的一句话:
checkBoxList
这是一个checkBox集合组件,使用代码:
<?php echo $form->checkBoxList($model,'checkBoxList', array('1'=>'Football','2'=>'Music','3'=>'Game','4'=>'basketball'), array('separator'=>' ','labelOptions'=>array('class'=>'checkboxlabel')) )?>
这个组件同上,唯一不同的是这个组件是多选的,所以他对应的模型类的属性应该是一个数组。这个组件将你选中的每个checkBox的值构造成一个数组提交服务器端。例如我们选中了Football和Game,那个该组件构造的数组将是array(‘1’,’3’),没有选中的checkBox不会被构造进这个数组中。反之从服务器段读取数组,然后显示该组件也是同样的道理。
看最后一句话,意思貌似是,checkBoxList本身就有默认的选中....
然后我测试了一下:
<?php $model->sort_id = array('1','2') ;?> <?php echo $form->checkBoxList($model,'sort_id',Sorts::model()->list); ?>
显示的结果是,第一个和第二个选中了。
不知道这样是不是个解决办法...
cookedsteak 觉得很赞 -
兔兔哇~~其实lilongsy说的是对的,checkBoxList是默认选中的吧....如果$model 里面有对应的属性的值,拿我下面的这句话举例,就是$model对应的sort_id有值,并且这些值在
Sorts::model()->list
中,checkBoxList会自动选中这些值.....你误解lilongsy的意思是因为,你以为他说的
Sorts::model()->list
的值就是$model->sort_id
的值....<?php echo $form->checkBoxList($model,'sort_id',Sorts::model()->list); ?>
-
_ancientmoon 回复于 2012-08-30 23:19 举报
如果我的$model是post的一个实例,那么应该这样获取值$_POST['Post']['checkBoxList'],它应该是一个数组。
不过事实上,我得到的是一个array的字符串,这是怎么回事?能帮忙解决一下么 -
我没用过,刚测试了一下,不会出现你说的那个情况,我得到的是个数组。
你也可以测试一下。我是基于我以前的自己的一个小项目测试的。
在model里面。我定义了一个test,并设置为safe ;view里面,
echo $form->checkBoxList($model,'test',Sorts::model()->list);//我Sorts::model()->list的值是Array ( [1] => 笑话 [2] => 囧事 [4] => 秘密 )
Controller里面
$a = $_POST['Stories']['test'] ; print_r($a);exit();
打印出来的结果是
Array ( [0] => 1 [1] => 2 [2] => 4 )
-
_ancientmoon 回复于 2012-08-31 11:14 举报
嗯确实是得到一个数组。昨晚刷牙的时候想到自己错在哪里了~~哈哈
-
bianzhuang 回复于 2012-09-17 11:29 举报
刚好用到,谢谢了
猫咪兔
最后登录:2019-08-09
在线时长:3小时41分
- 粉丝1
- 金钱1045
- 威望0
- 积分1075