Yii-CHtml::dropDownList。不同标签下的相同值
在我面对一个问题之前,一切都很好。我有一个数组,看起来像这样:Yii-CHtml::dropDownList。不同标签下的相同值,yii,html-select,Yii,Html Select,在我面对一个问题之前,一切都很好。我有一个数组,看起来像这样: CHtml::dropDownList('name','select',$listData,$htmlOptions); array( array('ua', 'Ukraine', '380'), array('ru', 'Russia', '7'), ... array('kz', 'Kazakhstan', '7'), ); $listData是(值=>标签)的数组。首先,我遍历了数组,并将(code
CHtml::dropDownList('name','select',$listData,$htmlOptions);
array(
array('ua', 'Ukraine', '380'),
array('ru', 'Russia', '7'),
...
array('kz', 'Kazakhstan', '7'),
);
$listData
是(值=>标签)的数组。首先,我遍历了数组,并将(code=>country)数组作为$listData生成。但我发现不同的国家可能有相同的代码。我可以使用第一个“两个字母的geo”作为键,$listData
将是一个唯一的数组。
如果我需要相同的值,但标签不同,该怎么办
似乎唯一的Yii解决方案是在一个键(值)下连接标签。
或者使用纯html并单独回显每个选项。我认为明智的做法是使用新模型,使用新id(INTEGER主键自动递增),并将数据保存在单独的字段(国家、地理位置、代码)中 仅使用新id和国家/地区将listdata创建为一个数组,使数组如下所示:
CHtml::dropDownList('name','select',$listData,$htmlOptions);
array(
array('ua', 'Ukraine', '380'),
array('ru', 'Russia', '7'),
...
array('kz', 'Kazakhstan', '7'),
);
这样,您将只发送id,并在接收方计算出数据(地理位置、代码、国家)
但我必须问一下: 似乎唯一的Yii解决方案是在一个键(值)下连接标签 您希望选项标记看起来像什么
array( 0=>'Ukraine', 1=>'Russia', 2=>'Kazakhstan' );
+380(乌克兰)
这是我的选项标签。我想要+7(俄罗斯)+7(哈萨克斯坦)
,问题是这个数组存储在一个文件中,我不想将它移动到数据库中。关于html选项-是的,这可能是某种解决方案,但它需要一些额外的javascript,在提交之前切换值和代码。我只想将一个数字代码从客户端发送到php,以避免不必要的服务器端循环。因此,如果$listData
可以传递数组('value'=>$value,'label'=>$label)
。。。