radioButtonList 无法正常取出选项值 [ 未指定版本 ]
应该算是个bug吧。
版本:YII1.1.15
在php的视图里,输出这个
$form->radioButtonList(模型,字段 , 选项);
我试图生成一个单选按钮组,选项使用的是数组数据。
看了一下代码,和dropDownList的使用时一样的,文档里http://www.yiichina.com/api/1.1/CActiveForm#radioButtonList-detail
里面是这样说的:
$data array 用于生成单选按钮组的选项的数据 (value=>display)
当你把$data定义成下面这样的时候,radioButtonList生成的单选按钮的value永远是从0,1,2,3,4,5这样的值,并不是按照你的数组里的值呈现的,类似的dropDownList则不会出现这情况。
$data = array(
1=>'民政局',
2=>'科技局',
3=>'保障部',
7=>'组织部',
);
这种情况下,生成的4个单选按钮的value分别是0,1,2,3,是不对的。
然后我将$data改为下面的情况:
$data = array(
'x1'=>'民政局',
'x2'=>'科技局',
'x3'=>'保障部',
'x7'=>'组织部',
);
居然又神奇的正确了,value分别是 x1 x2 x3 x7。
后来我就开始找原因,我觉得这可能是个bug,所以我看了源码,没发现问题,再然后看了下我的调用,一个个删除属性,然后测试。最终发现问题,我使用了一个默认的选项'empty' => '请选择部门',导致了上面的bug,把这个删了就正常了,即使是第一种情况也能正确的输出选项和值,今天是没时间研究了,先贴出来,大家有空可以研究看看。
共 2 个回答
-
li1162322644 回答于 2017-03-06 16:55 举报
这个问题我也遇到啦,,坑啊。。。我本地是7,是正确的,,5.3就不行。。。我觉得还是环境问题。。。
li1162322644 觉得很赞 -
li1162322644 回答于 2017-03-07 11:09 举报
找到问题啦,,是框架问题,,源码中类似array_merge()的方法,如果有键值为整型,会自动按0、1、2、3的顺序排序,,解决方法是是弃用empty。。手动拼接数组。。
lxepoo 江苏南京
注册时间:2014-09-02
最后登录:2020-10-23
在线时长:33小时42分
最后登录:2020-10-23
在线时长:33小时42分
- 粉丝27
- 金钱1487
- 威望125
- 积分3067