Ajax动态访问数据库设计html多级select下拉菜单的方法

getArea(0,$('<select>'));//调用方法,第一个参数是要查询项目的id,根据数据库来就好,第二个参数是一个select对象,可以是现有的,也可以生成一个新的在页面刷新的时候自动append到body上

function getArea(aid,iselect){
	var ajaxReq;
	iselect.nextAll('select').remove();//将被点击的select后面所有的select菜单移出,准备换新的
	$.get("/ajax/ajaxservlet","area_id="+aid,function(a,b,c){//这里的地址是servlet地址,可以自己改动

			var text = a.toString();
			if(text.length<3){
				return;
			}
			var select = $('<select>');
			//解析字符串成为josn对象
			var objs = eval("("+text+")");
			//json字符串格式应为[{area_id:'2';area_name:'山东'}{area_id:'3';area_name:'河北'}{}{}]
			for(var i=0;i<objs.length;i++){
				 var option = $('<option>',{'value':objs[i].area_id});
				 option.html(objs[i].area_name);
				 option.appendTo(select);
			}
		
			select.bind('change', function(){setSelect(this)});
			select.appendTo($('body'));//添加到body上
			
			setSelect(select);//把此select传入,根据此select的第一个option的id递归,生成下一个select,直到查到最底层为止
			});
	
}

function setSelect(obj){
    getArea($(obj).children("option:selected").attr('value'),$(obj));
}
//在递归时,选择传入select标签底下被选中的option标签,将这个option标签的value属性(存放有本选项的id值)发到服务器,然后服务器根据此id查询此id的子元素

 
 

你可能感兴趣的:(JavaScript,html,Ajax,数据库,下拉菜单)