jqure中ajax实现回显,jquery用ajax实现级联

这篇博客详细介绍了如何使用JavaScript和AJAX实现页面初始化时加载数据,并动态创建级联下拉菜单。当用户选择某项时,通过onshow()方法触发下一级菜单的加载。文章提供了一个简单的后台action代码示例,用于根据父级ID获取子级列表并转化为JSON返回。整个过程实现了无限级联动效果。
摘要由CSDN通过智能技术生成

1、刚开始页面初始化的时候调用该方法,将在页面显示初始化记录页面如图

aba15f63hl5u0139.jpg 

//列表初始化方法进入页面后调用

$(document).ready(function(){

$.ajax({

url:'init.action',//请求的URL

cache: false, //不从缓存中取数据

data:{pid:2},//发送的参数

type:'Get',//请求类型

dataType:'json',//返回类型是JSON

timeout:20000,//超时

error:function()//出错处理

{

alert("程序出错!");

},

success:function(json)//成功处理

{

var len=json.length;//得到查询到数组长度

$("").appendTo("#content");//在content中添加select元素

$("请选择").appendTo("#no1");

for(var i=0;i

{

$(""+json[i].sortName+"").appendTo("#no1");

}

}

});

});

当选择其中一项时触发onshow()方法,代码如下:

function show()

{

var obj=event.srcElement;//取得当前事件的对象,也就是你点了哪个select,这里得到的就是那个对象

var currentObj=$(obj);//将JS对象转换成jQuery对象,这样才能使用其方法

var s1=$(obj).nextAll("select");//找到当前点击的后面的select对象

s1.each(function(i){

$(this).remove();//循环把它们删除

});

var value1=$(obj).val();

$.ajax({

url:'init.action',

cache:false,

data:{pid:value1},

type:'Get',

dataType:'json',

timeout:20000,

error:function()

{

alert("出错啦");

},

success:function(json)

{

var len=json.length;

if(len!=0)

{

$("").appendTo("#content");

for(var i=0;i

{

$(""+json[i].sortName+"").appendTo("#content>select:last");

}

}

}

});

}

就会动态的级联出下一级:界面如下图:

aba15f63nd46013d.png

如果再选择同样还会调用onshow()方法,继续级联出来,

aba15f63rld1013f.jpg

action中代码也比较简单,贴出来供参考一下:

public void init() throws IOException{

HttpServletResponse res=this.getResponse();

HttpServletRequest request=this.getRequest();

res.setContentType("text/html; charset=utf-8");

PrintWriter out;

out = res.getWriter();

String pid=request.getParameter("pid");

int id=Integer.parseInt(pid);

List list=sortService.getChildenByConditions(id, "0");//这个查询所有父亲id下面所有的列表

JsonConfig config = new JsonConfig();

config.setJsonPropertyFilter(new PropertyFilter(){

public boolean apply(Object source, String name, Object value) {

if(name.equals("parentSort") || name.equals("TASorts")||name.equals("TAAuths")||name.equals("TBSortInfors")||name.equals("sortInfors")) {

return true;

} else {

return false;

}

}

});

JSONArray arr=JSONArray.fromObject(list,config);//这个类是把list转换成json的格式

out.print(arr);

}

jsp中代码如下:

实现以上代码即可实现无限极联动。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值