搜索
系统检测到您的用户名不符合规范:

把json数据转成列表

浏览:2595 发布日期:2015年04月03日 分类:前端开发
有时候,不能上传图片,有点坑....就直接贴代码算了
http://www.cnblogs.com/zbseoag/p/4390596.html <!DOCTYPE html>
<HTML>
<HEAD>
<TITLE>测试</TITLE>
<meta http-equiv="content-type" content="text/html; charset=UTF-8">
<script type="text/javascript" src="http://test.com/Js/jquery.js"></script>
</HEAD>
<BODY>

<select name="test"></select>

<br/><br/><br/>
<select name="province">
<volist name="province" id="row">
<option value="{$row['area_id']}">{$row['title']}</option>
</volist>
</select>


<ul name="city"></ul>


<script type="text/javascript">

$.fn.ajaxSelect = function(url, options, func){

var defaults = {send:{data:{}, key:'id', attr:'value'}, event:'change', func: null};
if(typeof func == 'function') options.func = func;
var settings = $.extend(true, defaults, options);

return this.on(settings.event, function(){
settings.send.data[settings.send.key] = $(this).prop(settings.send.attr);
$.get(url, settings.send.data, function(data){
if(typeof settings.func == 'function') settings.func(data, $(this));
});
});
};


$.fn.jsonList = function(options, func){

var defaults = {data:[], name:'name', value:'value', option:'<option value="value">name</option>', func: null};
if(typeof func == 'function') options.func = func;
var settings = $.extend(defaults, options);

return this.each(function(){

var options = (settings.option.search(/<option\b/) > -1)? '<option value="">请选择</option>' : '';
var data = settings.data;
for(var i in data){

if(typeof settings.name == 'object'){
textString = settings.name.string;
for(var j in settings.name.field){
textString = textString.replace(settings.name.field[j], data[i][settings.name.field[j]]);
}
}else{
textString = data[i][settings.name];
}

if(typeof settings.value == 'object'){
valueString = settings.value.string;
for(var j in settings.value.field){
valueString = valueString.replace(settings.value.field[j], data[i][settings.value.field[j]]);
}
}else{
valueString = data[i][settings.value];
}
var line = settings.option.replace(/"value"/, '"'+valueString+'"');
options += line.replace(/>name</, '>'+textString+'<');
}
$(this).html(options);
if(typeof settings.func == 'function') settings.func($(this));

});
};


var data = [
{"area_id":"1111","title":"aaaa"},
{"area_id":"222","title":"bbb"},
{"area_id":"333","title":"ccc"},
{"area_id":"444","title":"ddd"},
];


$('[name="test"]').jsonList({
data:data,
name:{field:['title','area_id'], string:'title-(area_id)'},
value:'area_id',
option:'<option value="value">name</option>'
},
function(){
alert('json数组转成列表成功');
});



$('select[name="province"]').ajaxSelect("{:U('Tool/getCity')}", { send:{key:'province_id', attr:'value'}}, function(data, parent){

$('[name="city"]').jsonList({data:data, name:{field:['title','area_id'], string:'title-(area_id)'}, value:'area_id', option:'<li><a href="#" data-value="value">name</a></li>'}, function(){ alert('加载完成')});
});

</script>

</BODY>
</HTML>
最佳答案
评论() 相关
后面还有条评论,
评论支持使用[code][/code]标签添加代码
您需要登录后才可以评论 登录 | 立即注册
收藏
zbseoag
积分:1412 等级:LV3
热点推荐
(追記) (追記ここまで)
最新更新

我们

合作

网站

信息

ThinkPHP 是一个免费开源的,快速、简单的面向对象的 轻量级PHP开发框架 ,创立于2006年初,遵循Apache2开源协议发布,是为了敏捷WEB应用开发和简化企业应用开发而诞生的。ThinkPHP从诞生以来一直秉承简洁实用的设计原则,在保持出色的性能和至简的代码的同时,也注重易用性。并且拥有众多的原创功能和特性,在社区团队的积极参与下,在易用性、扩展性和性能方面不断优化和改进,已经成长为国内最领先和最具影响力的WEB应用开发框架,众多的典型案例确保可以稳定用于商业以及门户级的开发。

AltStyle によって変換されたページ (->オリジナル) /