A-A+
JavaScript ajax实现省市区联动例子
本文章来为各位介绍一个关于JavaScript ajax实现省市区联动例子,希望这个例子对各位有帮助,总结下自己在项目中做的最多的便是省市区的联动选择了,一种是省市区的样式是三个select框,直接选择,一种是省select框存在,市,区select框动态添加到后面,注意动态添加元素,以及对于未来元素的操作,一种是移动端整个大弹框选择省市区.
可能有的样式,以及实现的过程不太一样,但主要思路都是一样的,有的需要后台先给你省的数据,可以用twig循环出来,再进行其他操作,总体思路就是.
1)后台需写好获取省市区的三个ajax:如
- shop_get_province_ajax:
- path: /get_res_province_ajax
- defaults: { _controller: ShopBundle:ForgetPassword:get_res_province_ajax }
2)写好前台样式,以下模拟省市区select框:
- <div class="mid-box">
- <div class="sel120fff fl ml10">
- <div class="sel50fffarrow"></div>
- <select class="ProvinceSelect sel120" name="res_province_id">
- <option value="0">-请选择-</option>
- </select>
- </div>
- <div class="sel120fff fl ml10">
- <div class="sel50fffarrow"></div>
- <select class="CitySelect sel120" name="res_province_id">
- <option value="0">-请选择-</option>
- </select>
- </div>
- <div class="sel120fff fl ml10">
- <div class="sel50fffarrow"></div>
- <select class="DistrictSelect sel120" name="res_province_id">
- <option value="0">-请选择-</option>
- </select>
- </div>
- </div>
3)默认,页面加载完成,利用省ajax请求省的数据:
- var chosetext = "<option value='0'>-请选择-</option>";
- $(".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<length;i++){
- var region_option = "<option id='finish_region_id_op"+data[i].id+"'value='"+data[i].id+"'>"+data[i].name+"</option>"
- $(".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<length;i++){
- var city_option = "<option id='origin_city_id_op"+data[i].id+"'value='"+data[i].id+"' >"+data[i].name+"</option>";
- $(".CitySelect").append(city_option);
- }
- }
- })
- });
5)当区数据选择时,将选择的区的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<length;i++){
- var xian_option = "<option id='origin_xian_id_op"+data[i].id+"'value='"+data[i].id+"'>"+data[i].name+"</option>"
- $(".DistrictSelect").append(xian_option);
- }
- }
- })
- });