CHtml::dropDownList('name','select',$listData,$htmlOptions);
在遇到一个问题之前,一切都很好。我有一个数组,看起来像这样:
array(
array('ua', 'Ukraine', '380'),
array('ru', 'Russia', '7'),
...
array('kz', 'Kazakhstan', '7'),
);
$listData
是(value =>标签)的数组。首先,我走过数组并将(code => country)数组作为$ listData。但我发现不同的国家可能有相同的代码。我可以使用第一个“双字母地理”作为键,$listData
将是一个唯一的数组。
什么如果我需要相同的价值,但在不同的标签下?
似乎唯一的Yii解决方案是在一个键(值)下连接标签。 或者使用纯HTML并分别回显每个选项。
答案 0 :(得分:0)
我认为这样做的合理方法是使用新模型,使用新ID(INTEGER PRIMARY KEY AUTOINCREMENT),并将数据保存在单独的字段中(国家,地理位置,代码。)
使用新的id和国家/地区创建listdata为数组,因此数组看起来像这样:
array( 0=>'Ukraine', 1=>'Russia', 2=>'Kazakhstan' );
这样你只会发送id,并找出接收方的数据(地理位置,代码,国家)。
但我必须问一下:
似乎唯一的Yii解决方案是在一个键(值)下连接标签。
您希望选项标签看起来如何?
<option value="ua" code="380">Ukraine</option> // Like this?
然后你应该设置类似的htmlOptions:
array(
'ua'=>array('code'=>'380'),
'ru'=>array('code'=>'7'),
...
);