zoukankan      html  css  js  c++  java
  • Jquery省市区三级联动案例

    //Java部分代码

    public String province() throws Exception {
    List<Province> list=cityBiz.showProvince();//省份对象集合
    //解析集合用的方法
    JSONArray json=JSONArray.fromObject(list);
    System.out.println(json);
    response.setContentType("text/html;charset=utf-8");
    PrintWriter out=null;
    try {
    out=response.getWriter();
    } catch (Exception e) {
    e.printStackTrace();
    }
    //将省份的json字符串响应给jquery的ajax
    out.print(json.toString());
    out.close();
    return null;
    }

    public String city() throws Exception {
    String pid=request.getParameter("pid");

    //根据选择的省份去查询对应的城市对象集合
    List<City> list=cityBiz.showCity(pid);
    JSONArray json=JSONArray.fromObject(list);
    System.out.println(json);
    response.setContentType("text/html;charset=utf-8");
    PrintWriter out = null;
    try {
    out = response.getWriter();
    } catch (Exception e) {
    e.printStackTrace();
    }
    //将城市的json字符串响应给jquery的ajax
    out.print(json.toString());
    out.close();
    return null;
    }

    public String district() throws Exception {
    String cid=request.getParameter("cid");

    //根据选中的城市拿到对应的区域对象集合
    List<District> list=cityBiz.showDistrict(cid);
    JSONArray json=JSONArray.fromObject(list);
    System.out.println(json);
    response.setContentType("text/html;charset=utf-8");
    PrintWriter out = null;
    try {
    out = response.getWriter();
    } catch (Exception e) {
    e.printStackTrace();
    }
    //将区域的json字符串响应给jquery的ajax
    out.print(json.toString());
    out.close();
    return null;
    }

    2、JS和HTML代码

    <script type="text/javascript">
    $(function(){
      $.ajax({
      type:"post",
      url: "testAction!province?time="+Math.random(),
      dataType:"json",//指定返回的格式
      success:function(data){
      for(var i=0;i<data.length;i++){
        var pid=data[i].pid//返回对象的一个属性
        var pname=data[i].pname;
        $("<option value='"+pid+"'>"+pname+"</option>").appendTo($("#pid"));//添加下拉列表
      }
    }
    });

    $(function(){
      $("#pid").change(function(){
      //清空下面两个子下拉列表(option中value值大于0的删除)
      $("#cid option:gt(0)").remove();
      $("#did option:gt(0)").remove();

      if($("#pid").val()==-1){
      return;//没有选择的就不去调用
    }
    //使用post方式
    $.post(
        "testAction!city?time="+Math.random(),
        {"pid":$("#pid").val()},//参数
        function(data){
        for(var i=0;i<data.length;i++){
        var cid=data[i].cid;
        var cname=data[i].cname;
        $("<option value='"+cid+"'>"+cname+"</option>").appendTo($("#cid"));//添加下拉列表
      }
    },
      "json"//指定返回类型
      );
    });
    });

    $(function(){
      $("#cid").change(function(){
      $("#did option:gt(0)").remove();
      if($("#cid").val()==-1){
        return;
      }
      $.getJSON(//这种访问方式返回的就是JSON格式数据
      "testAction!district?time="+Math.random(),
      {"cid":$("#cid").val()},
      function(data){
        for(var i=0;i<data.length;i++){
        var did=data[i].did;
        var dname=data[i].dname;
        $("<option value='"+did+"'>"+dname+"</option>").appendTo($("#did"));
      }
    }
    );
    });
    });
    });
    </script>
    <body>
      省份:<select id="pid">
      <option value="-1">请选择</option>
      </select><br>
      城市:<select id="cid">
      <option value="-1">请选择</option>
      </select><br>
      区域:<select id="did">
      <option value="-1">请选择</option>
      </select><br>
    </body>

  • 相关阅读:
    树状数组 浅显学习
    主席树 浅显学习
    B
    python测试开发面试之深浅拷贝
    2020年全网最全的自动化测试面试题及答案--吊打面试官就靠它了!
    软件测试员这个工作怎么样?做软件测试员这个职业有什么好处吗?
    软件测试能干到多少岁?写给像我相同迷茫的人
    python+requests实现接口自动化
    Python+selenium自动化测试之浏览器基础操作
    如何用 Python 做自动化测试【进阶必看】
  • 原文地址:https://www.cnblogs.com/laotan/p/3646437.html
Copyright © 2011-2022 走看看