爱4妮 jQuery + Ajax + json 级联省市县级联

$(function (){
	
	 var sf = $(".carname").children("select");
	 var cy = $(".cartype").children("select");
	 var dx = $(".wheeltype").children("select");	
	 var carimg = $(".carimg");
	 sf.change(function (){
	 var pid =$(this).val();
		
	 carimg.hide();    
	  dx.parent().hide();
	  //省份不为空
	  if(pid !=""){	 
	  $.get("http://domain:8080/test/CardServlet?method=getcity&pids="+pid,function (data)
	  {
		 
		  if(data.length !=0)
		  {		  
			 	 cy.html("");
			 	 
			 	   $("<option value=''>请选择城市</option>").appendTo(cy);
			 	 
			 	   $.each(data,function(index,city)
		            {
		            	$("<option value='"+city.cid+"'>" +city.cname + "</option>").appendTo(cy);
		            });	 	 	 	
					cy.parent().show();
					sf.next().show();			
		  }	  	  	  
	  },"json");
	  }
	  //省份为空
	  else{
	        cy.parent().hide();
			sf.next().hide();	
	  }
	  });
	  
	  //城市下拉框
	  cy.change(function (){
	 
	   var cid =$(this).val();
	  
	  dx.parent().show();
	  carimg.hide();
	  //城市不为空
	  if(cid !=""){
	 
	  $.get("http://domain:8080/test/CardServlet?method=getarea&cids="+cid,function (data)
	  {
		 
		  if(data.length !=0)
		  {		  
			 	 dx.html("");
			 	 
			 	 $("<option value=''>请选择地区</option>").appendTo(dx);
			 	 
			 	  $.each(data,function(index,aper)
		            {
		            $("<option value='"+aper.aid+"' >" +aper.aname + "</option>").appendTo(dx);
		            });	 	 	 	
					dx.parent().show();
					cy.next().show();			
		  }	else{ 
			    dx.parent().hide();
				cy.next().hide();
			}  	  	  
	  },"json");
	  }
	  //省份为空
	  else{
	  		dx.parent().hide();
			cy.next().hide();	
	  }	   	   
	   });
	   
	   dx.change(function(){
	   	var dqm = $(this).val();
		//2.根据省份 城市 地区 获得 图片的文件名
		var sfm = sf.val();
		var csm = cy.val();		
		var carimgname =sfm+csm+dqm+".jpg";
	    alert( carimgname);
	    carimg.hide();
		$(".carloading").show();
		//4.通过Javascript中的Image对象预装载图片
		var cacheimg = new Image();
		$(cacheimg).attr("src","images/" + carimgname).load(function(){
			//隐藏loading图片
			$(".carloading").hide();
			//显示图片
			carimg.attr("src","images/" + carimgname).show();
		});
	    
	    
	    
	   
				});
	   
	  
	   
	   //给数据装载中的节点定义ajax事件,实现动画提示效果
	$(".loading").ajaxStart(function(){
		$(this).css("visibility","visible");
		$(this).animate({
			opacity: 1
		},0);
	}).ajaxStop(function(){
		$(this).animate({
			opacity: 0
		},500);
	});
	
});

  
	  	  
</script>


三级级联下拉菜单可以通过Jquery+Ajax实现,以下是一个简单的示例代码: HTML代码: ```html <select id="province"> <option value="">请选择省份</option> <option value="北京">北京</option> <option value="上海">上海</option> <option value="广东">广东</option> </select> <select id="city"> <option value="">请选择城市</option> </select> <select id="district"> <option value="">请选择区</option> </select> ``` Jquery+Ajax代码: ```javascript $(document).ready(function() { // 加载省份列表 $.ajax({ type: "GET", url: "province.php", success: function(data) { $("#province").append(data); } }); // 省份选项改变时,加载城市列表 $("#province").change(function() { var province = $(this).val(); $("#city").html("<option value=''>请选择城市</option>"); $("#district").html("<option value=''>请选择区</option>"); if (province != "") { $.ajax({ type: "GET", url: "city.php", data: {"province": province}, success: function(data) { $("#city").append(data); } }); } }); // 城市选项改变时,加载区列表 $("#city").change(function() { var province = $("#province").val(); var city = $(this).val(); $("#district").html("<option value=''>请选择区</option>"); if (city != "") { $.ajax({ type: "GET", url: "district.php", data: {"province": province, "city": city}, success: function(data) { $("#district").append(data); } }); } }); }); ``` 在省份、城市、区列表对应的php文件中,需要根据传入的参数返回对应的选项列表。例如,city.php文件可能如下所示: ```php $province = $_GET["province"]; echo "<option value=''>请选择城市</option>"; if ($province == "北京") { echo "<option value='北京市'>北京市</option>"; } else if ($province == "上海") { echo "<option value='上海市'>上海市</option>"; } else if ($province == "广东") { echo "<option value='广州市'>广州市</option>"; echo "<option value='深圳市'>深圳市</option>"; echo "<option value='珠海市'>珠海市</option>"; } ``` 类似地,district.php文件也需要根据传入的参数返回对应的选项列表。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值