当前位置: 代码迷 >> PHP >> 关于下拉列表绑定的小疑点
  详细解决方案

关于下拉列表绑定的小疑点

热度:12   发布时间:2016-04-28 18:39:25.0
关于下拉列表绑定的小问题
在 php 中
$redata=array();
$redata[-2]='CPU';
$redata[-3]='操作系统';
$redata[-4]='尺寸';
foreach ($temp as $key=>$value){
$redata[$value['id']]= id2name('prodcut_conf_type',$value['conf_type']);
}
最后得到的结果
"-2":"CPU","-3":"\u64cd\u4f5c\u7cfb\u7edf","-4":"\u5c3a\u5bf8","1":"\u786c\u76d8"
由于编码问题。中文没有显示,这个没问题
翻译过来是:"-2":"CPU","-3":"操作系统","-4":"尺寸","1":"硬盘"

硬盘是从数据库表中读出来的

然后是html
$.post('{:U('Product/getTypeToMenuJson')}',{ptype:$("#mid").val()},function(data) {
     var option = $("<option>").text('--请选择--').val('')
menudroplist.append(option);
for(var key in data.data){
var option = $("<option>").text(data.data[key]).val(key)
    menudroplist.append(option);
}
    });
绑定到一个下拉列表。

可最后结果是
--请选择--
硬盘
CPU
操作系统
尺寸

而不是 
--请选择--
CPU
操作系统
尺寸
硬盘

请问大侠这是为什么,应该如何修改
------解决方案--------------------
你返回的是 js 对象,而 js 的对象是按哈希表组织属性的
你如果返回数组或对象数组的话就没问题了
二维数组
[["-2","CPU"],["-3","\u64cd\u4f5c\u7cfb\u7edf"],["-4","\u5c3a\u5bf8"],["1","\u786c\u76d8"]]
对象数组
[{"-2":"CPU"},{"-3":"\u64cd\u4f5c\u7cfb\u7edf"},{"-4":"\u5c3a\u5bf8"},{"1":"\u786c\u76d8"}]
对于二维数组

d = data.data;
for(var i=0; i<d.length; i++){
  var option = $("<option>").text(d[i][1]).val(d[i][1])
    menudroplist.append(option);
}

------解决方案--------------------
{"data":[["-2","CPU"],["-3","\u64cd\u4f5c\u7cfb\u7edf"],["-4","\u5c3a\u5bf8"],["1","\u786c\u76d8"]],"info":"","status":1}

------解决方案--------------------
  相关解决方案