sharehua
(8080268)
1
View代码段:
<select name="MessageSend[ids]" id="select_left" multiple="multiple" size="15">
<option value="1">超级管理员</option>
<option value="2">一般人员</option>
</select>
controller代码:
$_POST['MessageSend[ids]']code]
这里取到的ids是一个string类型。不是array类型。
--------------------------------------------
如果把select 的name改为ids[],则可以取到数组。
-------------------------------------------
如果把select 的name改为MessageSend[ids[]].在controller里面只能看到 ids[ 这个变量。也是一个string值。
qiang
(Qiang Xue)
2
这个view代码是你自己写的还是CHtml产生出来的?
你如果用CHtml::activeListBox($model, 'ids'),应该能产生出MessageSend[ids][]的name。
sharehua
(8080268)
3
是我自己写的名字的。因为我编写的extension没有限定多选框的名字。
现在碰到了这个问题,就是我在model里面定义了一个值ids来存数据,临时用的,但
$model->attributes=$_POST['model'];没有把ids值传递过去。
我看了loginForm的代码也是自己定义属性,但可以传递。
是不是继承CFormModel的原因?
qiang
(Qiang Xue)
4
如果你的model是继承CActiveRecord,那么你需要把这个变量在safeAttributes里声明。