jqeury josn 的之间页面转换

今天在开发一个 异步更新 select下拉列表时,遇到了一些问题,现记录下,以备以后遇到时可以查阅。

首先是:出现 非法标签错误,其原因是,在 eval json数据的时候,左右没有加括号,正确的格式应该是:eval(“(“+jsondata+”)”);

其次是在访问json数据时,采用jsondata.length想来遍历数据,但是每次都是显示undefined,查了很多原因,一开始一直以为是jquery的版本问题,后来才知道 json格式有两种 表示方法,

第一种:{“k1″:”v1″,”k2″:”v2″} ,这种数据格式返回的是 objcet对象,没有length属性

第二种:[["k1":"v1"],["k1":"v1"]] 这种数据格式是 数组形式,才有length属性

而在php中,经过json_encode 之后的数据 是第一种形式的数据,因此在jquery中,需要使用$.each函数来遍历方可使用。

//此函数的作用是,通过不同的类型获取不同的tag类型,从而填充select下拉列表。

复制代码
function
 set_com_tags(comtype) {
$.getJSON(“api.php?m=selecttagtype&comtype=”+comtype, function
(data) {
$(“#tag”).empty();
$.each(data, function
(i,item){
$(“#tag”).append(“<option value=’”+i+”‘>”+item+”</option>”);
});
});
}
复制代码

猜你喜欢

转载自eyebeer.iteye.com/blog/1601664
今日推荐