一聚教程网:一个值得你收藏的教程网站

最新下载

热门教程

JavaScript ajax实现省市区联动例子 

时间:2015-09-24 编辑:简简单单 来源:一聚教程网


总结下自己在项目中做的最多的便是省市区的联动选择了。

一种是省市区的样式是三个select框,直接选择,样式如下:

 

11

 

一种是省select框存在,市,区select框动态添加到后面(注意动态添加元素,以及对于未来元素的操作);

一种是移动端整个大弹框选择省市区,样式如下:

 

22

 

可能有的样式,以及实现的过程不太一样,但主要思路都是一样的。(有的需要后台先给你省的数据,可以用twig循环出来,再进行其他操作)

总体思路就是:(1)后台需写好获取省市区的三个ajax:如

css;toolbar:false">shop_get_province_ajax:

path: /get_res_province_ajax

defaults: { _controller: ShopBundle:ForgetPassword:get_res_province_ajax }

 

(2)写好前台样式(以下模拟省市区select框):





-请选择-
-请选择-
-请选择-


(3)默认,页面加载完成,利用省ajax请求省的数据:

var chosetext = "-请选择-";

$(".CitySelect").append(chosetext);

$(".DistrictSelect").append(chosetext);

 

$.ajax({

type:"get",

url:"{{path('shop_get_province_ajax'
)}}",

dataType:"json",

success:function(data){

$(".CitySelect").empty();

$(".DistrictSelect").empty();

$(".CitySelect").append(chosetext);

$(".DistrictSelect").append(chosetext);

 

var length=data.length;

for(var i=0;i"+data[i].name+""

$(".ProvinceSelect").append(region_option);

}

 

}

});


(4)当省数据选择时,将选择的省的id传送给市的ajax:

 

// 选择-出现市
$('.ProvinceSelect').change(function(){
$(".CitySelect").empty();
$(".DistrictSelect").empty();
$(".CitySelect").append(chosetext);
$(".DistrictSelect").append(chosetext);
 
var id = $(".ProvinceSelect").val();
var url= "{{path('shop_get_city_ajax', { 'id': 'text' })}}";
url = url.replace("text", id);
$.ajax({
type:"get",
url:url,
data:{region:id},
dataType:"json",
success:function(data){
var length=data.length;
 
for(var i=0;i"+data[i].name+"";
$(".CitySelect").append(city_option);
 
}
 
}
})
 
});


(4)当区数据选择时,将选择的区的id传送给区的ajax:

 
 
// 选择-出现区
$('.CitySelect').change(function(){
$(".DistrictSelect").empty();
$(".DistrictSelect").append(chosetext);
 
var id = $(".CitySelect").val();
 
var url = "{{path('shop_get_district_ajax', { 'id': 'text' })}}";
url = url.replace("text", id);
$.ajax({
type:"get",
url:url,
data:{city:id},
dataType:"json",
success:function(data){
var length=data.length;
 
for(var i=0;i"+data[i].name+""
$(".DistrictSelect").append(xian_option);
}
 
}
})
});