在 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}
------解决方案--------------------
