• ajax实现三级联动下拉菜单


    先不要着急去实现功能,我们第一步首先要理清思路,想要实现三级联动,首先要有三个下拉框,然后点击第一个下拉菜单,可以联动到第二个,点击第二个联动到第三个,实现省市区的三级联动,用到的数据表如下:

    为了以后可以随时拿出来用,我们先在主页面建立一个div叫sanji,然后用一个js页面来引用:

    主页面引入Jquery和js:

    <title>无标题文档</title>
    <script src="jquery-3.2.0.min.js"></script>
    <script src="sanji.js"></script>
    </head>
    <body>
    <h1>区域查询</h1>
    <div id="sanji"></div>
    </body>
    </html>

    js页面才是重点,这个页面纯用js(jquery)代码来写,逻辑就是写三个方法,让省找到市,市找到区:

    $(document).ready(function(e) {
        var str = "<select id='sheng'></select><select id='shi'></select><select id='qu'></select>";//三个下拉交给一个字符串
        $("#sanji").html(str);//将三个下拉的字符串交给前边的div
        tiansheng();//加载省的数据
        tianshi();//加载市的数据
        tianqu();//加载区 的数据
        
         $("#sheng").change(function(){                
                tianshi();//重新加载市
                tianqu();//重新加载区
            })
        $("#shi").change(function(){
                tianqu();//加载区的数据
            })
    });
    
    function tiansheng()
    {
         var pcode = "0001"; //找出省的父级代号
          $.ajax({
                async:false,//同步
                url:"sanchuli.php",
                data:{pcode:pcode},
                type:"POST",
                dataType:"TEXT",
                success: function(data){             
                        var hang = data.split("|");//拆分行   
                        var str = "";
                        for(var i=0;i<hang.length;i++)
                        {
                            var lie = hang[i].split("^");//拆分列         
                            str += "<option value='"+lie[0]+"'>"+lie[1]+"</option>";    
                        }
                        $("#sheng").html(str); 
                    }
            });
    }
    
    function tianshi()
    {
        var pcode = $("#sheng").val();//找市的父级代号,省选中项的值
        $.ajax({
                async:false,
                url:"sanchuli.php",
                data:{pcode:pcode},
                type:"POST",
                dataType:"TEXT",
                success: function(data){
                        var hang = data.split("|");
                        var str = "";
                        for(var i=0;i<hang.length;i++)
                        {
                            var lie = hang[i].split("^");
                            str += "<option value='"+lie[0]+"'>"+lie[1]+"</option>";
                        }
                        $("#shi").html(str);
                    }
            });
    }
    
    function tianqu()
    {
        var pcode = $("#shi").val();//找区的父级代号,市选中项的值
        $.ajax({
                url:"sanchuli.php",
                data:{pcode:pcode},
                type:"POST",
                dataType:"TEXT",
                success: function(data){
                        var hang = data.split("|");
                        var str = "";
                        for(var i=0;i<hang.length;i++)
                        {
                            var lie = hang[i].split("^");
                            str += "<option value='"+lie[0]+"'>"+lie[1]+"</option>";
                        }
                        $("#qu").html(str);
                    }
            });
    }

    最后处理页面很简单,直接用一个页面就可以,因为要实现的功能都是一样的:

    <?php
    $pcode = $_POST["pcode"];
    
    require "DBDA.class.php";
    $db = new DBDA();
    $sql = "select * from chinastates where parentareacode='{$pcode}'";
    echo $db->strquery($sql);

     最终效果图:

  • 相关阅读:
    java连接常见数据库的连接字符串
    一个用来自动管理大容量表的Sql脚本
    Ibatis2.0使用说明(一)——入门实例篇
    态度决定你的人生高度
    jboss配置入门(二) -JBOSS3.2.3/3.2.6部署及配置修改
    如何在一个工程里面实现不同的功能打入不同的日志文件中【log4net】
    Xsl实践总结(一)
    Xsl实践总结(三)-介绍一款开发XSL不错的IDE(Stylus)
    Xsl实践总结(二)
    教你节省时间 让你个人效率翻三倍
  • 原文地址:https://www.cnblogs.com/mengshenshenchu/p/6852371.html
Copyright © 2020-2023  润新知