|
楼主 |
发表于 2014-12-9 13:48:08
|
显示全部楼层
1. 如果用PHP来输出option的话,我觉得比较麻烦,因为我现在做是一个二级联动菜单。用户选择的时候,就需要ajax请求php获取对应的子分类,不如用你说的第二种方法
2. 不同的json语言的话,我试了一下,因为我对json不精通,写出来的json格式有点繁琐,导致jquery解析的时候用到3个$.each来解析,麻烦您帮看一下,js代码如下:
JS复制代码
// 声明初始化函数
function initialize(data){
var father = ""; // 预先声明
var child = ""; //
var times = 0 ; // 初始化的时候,子类只显示json第一个对象的第一组数据,这个是记录each执行的次数
$.each(data,function(oneKey,oneVal){
times++;
// 父类菜单的一次拼接
father += ('<option value="'+oneKey+'">');
$.each(oneVal,function(twoKey,twoVal){
// 父类菜单的二次拼接
father += (twoKey+"</option>");
if(times<=1){
$.each(twoVal,function(threeKey,threeVal){
// 子类菜单的拼接
child += ('<option value="'+threeKey+'">'+threeVal+'</option>');
});
}
})
});
$('select.category').append(father); // 最后完成父菜单节点插入
$('select.sub-category').append(child); // 最后完成子菜单节点插入
}
// 声明二级菜单json格式的数据
var data = '{ "movie":{ "<?=$movie?>": { "cam":"<?=$cam?>","dvd":"<?=$dvd?>","hdtv":"<?=$hdtv?>","seven_p":"<?=$seven_p?>","eight_p":"<?=$eight_p?>"}} ,"music": {"<?=$music?>":{"lossless":"<?=$lossless?>" , "mp3":"<?=$mp3?>"}}}';
// 解析json数据
var temp = $.parseJSON(data);
// 调用初始化函数
initialize(temp);
复制代码
JSON数据为:
JS复制代码
// 声明二级菜单json格式的数据
var data = '{ "movie":{ "<?=$movie?>": { "cam":"<?=$cam?>","dvd":"<?=$dvd?>","hdtv":"<?=$hdtv?>","seven_p":"<?=$seven_p?>","eight_p":"<?=$eight_p?>"}} ,"music": {"<?=$music?>":{"lossless":"<?=$lossless?>" , "mp3":"<?=$mp3?>"}}}';
复制代码
3. 语言变量我是直接存到php文件中的,也就是手册里面的方法,把语言文件存到/application/language/chinese/language.php。定义session后就可以指定全站的界面语言。因为我对js不了解,所以没敢用js存到array的方法
综上所说,麻烦你能看一看,第二项里面如何简化js代码及json数据格式
|
|