ajax实现城市三级联动

 更新时间:2021年10月19日 08:28  点击:1885

本文实例为大家分享了ajax实现城市三级联动的具体代码,供大家参考,具体内容如下

在准备好服务器后

html部分

<div>
        <select name="" id="province">
            <option value="">请选择省份</option>
        </select>
        <select name="" id="city">
            <option value="">请选择城市</option>
        </select>
        <select name="" id="district">
            <option value="">请选择区域</option>
        </select>
</div>

样式部分

<style>
        div {
            text-align: center;
        }

        select {
            width: 150px;
            height: 30px;
        }
</style>

js部分

<script>
        var a = 0;
        var b = 0;
        var d=null;

            $.ajax({
                type:'get',
                url:'http://127.0.0.1:6562/0929/area-json.js',
                success: function(data){         
                    d = JSON.parse(data.slice(10,-1)); //获取json数据并转化为数组数据
                    $.each(d,function(index,ele){
                    $('<option value = ""></option>').appendTo('#province').text(ele.name);//把省的数据插入列表中
                    })
            }
            })
        $('#province').on('change',function(e){  //当省变化时
            $.ajax({
                type:'get',
                url:'http://127.0.0.1:6562/0929/area-json.js',
                success: function(data){         
                    d=JSON.parse(data.slice(10,-1));
                    a = e.target.selectedIndex - 1;  //当前下拉列表下标
                    if(a == -1){
                        $('#city').html('<option value="">请选择城市</option>');
                        $('#district').html('<option value="">请选择区域</option>');
                    }else{
                        $('#city').html('<option value="">请选择城市</option>');
                        $('#district').html('<option value="">请选择区域</option>');
                        if(d[a].children){
                            $.each(d[a].children,function(index,ele){
                                $('<option value = ""></option>').appendTo('#city').text(ele.name);

                            })
                        }
                    }
            }
            })
        })
        $('#city').on('change',function(e){   //当市变化时
            $.ajax({
                type:'get',
                url:'http://127.0.0.1:6562/0929/area-json.js',
                success: function(data){         
                    d=JSON.parse(data.slice(10,-1));
                    b = e.target.selectedIndex - 1;
                    if(b == -1){
                        $('#district').html('<option value="">请选择区域</option>');
                    }else{
                        $('#district').html('<option value="">请选择区域</option>');
                        if(d[a].children[b].children){
                            $.each(d[a].children[b].children,function(index,ele){
                                $('<option value = ""></option>').appendTo('#district').text(ele.name);

                            })
                        }
                    }
            }
            })
            
        })
</script>

全部代码

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <script src="https://cdn.bootcdn.net/ajax/libs/jquery/1.11.3/jquery.js"></script>
    <style>
        div {
            text-align: center;
        }

        select {
            width: 150px;
            height: 30px;
        }
    </style>
</head>
<body>
    <div>
        <select name="" id="province">
            <option value="">请选择省份</option>
        </select>
        <select name="" id="city">
            <option value="">请选择城市</option>
        </select>
        <select name="" id="district">
            <option value="">请选择区域</option>
        </select>
    </div>
    <script>
        var a = 0;
        var b = 0;
        var d=null;

            $.ajax({
                type:'get',
                url:'http://127.0.0.1:6562/0929/area-json.js',
                success: function(data){         
                    d = JSON.parse(data.slice(10,-1));
                    $.each(d,function(index,ele){
                    $('<option value = ""></option>').appendTo('#province').text(ele.name);
                    })
            }
            })
        $('#province').on('change',function(e){
            $.ajax({
                type:'get',
                url:'http://127.0.0.1:6562/0929/area-json.js',
                success: function(data){         
                    d=JSON.parse(data.slice(10,-1));
                    a = e.target.selectedIndex - 1;
                    if(a == -1){
                        $('#city').html('<option value="">请选择城市</option>');
                        $('#district').html('<option value="">请选择区域</option>');
                    }else{
                        $('#city').html('<option value="">请选择城市</option>');
                        $('#district').html('<option value="">请选择区域</option>');
                        if(d[a].children){
                            $.each(d[a].children,function(index,ele){
                                $('<option value = ""></option>').appendTo('#city').text(ele.name);

                            })
                        }
                    }
            }
            })
        })
        $('#city').on('change',function(e){
            $.ajax({
                type:'get',
                url:'http://127.0.0.1:6562/0929/area-json.js',
                success: function(data){         
                    d=JSON.parse(data.slice(10,-1));
                    b = e.target.selectedIndex - 1;
                    if(b == -1){
                        $('#district').html('<option value="">请选择区域</option>');
                    }else{
                        $('#district').html('<option value="">请选择区域</option>');
                        if(d[a].children[b].children){
                            $.each(d[a].children[b].children,function(index,ele){
                                $('<option value = ""></option>').appendTo('#district').text(ele.name);

                            })
                        }
                    }
            }
            })
            
        })
    </script>
</body>
</html>

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持猪先飞。

[!--infotagslink--]

相关文章

  • vue.js 表格分页ajax 异步加载数据

    Vue.js通过简洁的API提供高效的数据绑定和灵活的组件系统.这篇文章主要介绍了vue.js 表格分页ajax 异步加载数据的相关资料,需要的朋友可以参考下...2016-10-20
  • JS基于MSClass和setInterval实现ajax定时采集信息并滚动显示的方法

    这篇文章主要介绍了JS基于MSClass和setInterval实现ajax定时采集信息并滚动显示的方法,涉及JavaScript页面元素定时滚动操作及ajax调用实现技巧,需要的朋友可以参考下...2016-04-19
  • jQuery+ajax简单实现文件上传的方法

    这篇文章主要介绍了jQuery+ajax简单实现文件上传的方法,结合实例形式简单分析了jQuery基于ajax的post方法进行文件传输及asp.net后台处理技巧,需要的朋友可以参考下...2016-06-12
  • 微信小程序实现选择地址省市区三级联动

    这篇文章主要为大家详细介绍了微信小程序实现选择地址省市区三级联动,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下...2020-06-21
  • js实现ajax的用户简单登入功能

    这篇文章主要为大家详细介绍了js实现ajax的用户简单登入功能,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下...2020-06-19
  • jquery+Ajax实现简单分页条效果

    这篇文章主要为大家详细介绍了jquery+Ajax实现简单分页条效果,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下...2021-06-17
  • jquery Ajax实现Select动态添加数据

    这篇文章主要为大家详细介绍了jquery Ajax实现Select动态添加数据的相关资料,具有一定的参考价值,感兴趣的小伙伴们可以参考一下...2017-06-15
  • Bootstrap进度条与AJAX后端数据传递结合使用实例详解

    这篇文章主要介绍了Bootstrap进度条与AJAX后端数据传递结合使用,需要的朋友可以参考下...2017-04-27
  • jQuery UI结合Ajax创建可定制的Web界面

    这篇文章主要为大家详细介绍了jQuery UI结合Ajax创建可定制的Web界面,如何利用Ajax和jQuery UI创建具有各种定制功能的高度可定制的UI,感兴趣的小伙伴们可以参考一下...2016-06-24
  • jquery ajax局部加载方法详解(实现代码)

    下面想就为大家带来一篇jquery ajax局部加载方法详解(实现代码)。小编觉得挺不错的,现在分享给大家,也给大家做个参考,一起跟随小编过来看看吧...2016-05-14
  • PHP+jQuery+Ajax实现多图片上传效果

    今天我给大家分享的是在不刷新页面的前提下,使用PHP+jQuery+Ajax实现多图片上传的效果。用户只需要点击选择要上传的图片,然后图片自动上传到服务器上并展示在页面上。...2015-03-15
  • PHP+Mysql+Ajax+JS实现省市区三级联动

    基本思想就是:在JS动态创建select控件的option,通过Ajax获取在PHP从SQL数据库获取的省市区信息,代码有点长,但很多都是类似的,例如JS中省、市、区获取方法类似,PHP中通过参数不同执行不同的select语句。index.html代码:复制...2014-05-31
  • 基于jquery实现省市区三级联动效果

    这篇文章主要介绍了基于jquery实现省市区三级联动效果,需要的朋友可以参考下...2015-12-27
  • jQuery Ajax全解析

    本文主要介绍了Ajax基本概念;Ajax的异步加载局部刷新功能的实现;通过XMLHttpRequest发送请求。具有很好的参考价值,下面跟着小编一起来看下吧...2017-02-19
  • 原生js实现对Ajax的封装(仿jquery)

    这篇文章主要为大家详细介绍了原生js实现对Ajax的封装,模仿jquery,具有一定的参考价值,感兴趣的小伙伴们可以参考一下...2017-01-26
  • js实现对ajax请求面向对象的封装

    这篇文章主要介绍了js实现对ajax请求面向对象的封装的相关资料,需要的朋友可以参考下...2016-01-12
  • AngularJS Ajax详解及示例代码

    本文主要讲解AngularJS Ajax的知识,这里提供详细资料及代码示例,帮助学习AngularJS的朋友,有需要的小伙伴可以参考下...2016-08-24
  • 帝国CMS7.2实现地区三级联动并且前台可地区筛选的教程

    帝国CMS的三级联动一直是个痛,以前猪先飞网站长有分享过一篇“帝国CMS可自定义数据的三级联动选择功能教程”非常好用,今天再分享一款 三级联动代码,同样可以自定义数据,并且附...2016-01-27
  • 支付宝小程序实现省市区三级联动

    这篇文章主要为大家详细介绍了支付宝小程序实现省市区三级联动,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下...2020-06-21