首页 > 其他分享 >Ajax的三级联动 前后端分离写法

Ajax的三级联动 前后端分离写法

时间:2023-02-03 11:24:14浏览次数:43  
标签:getCityByPid qu sheng pid Ajax 联动 shi 写法 id

后端写法

项目结构如下

1.我们需要先在bean包中创建一个

City对象 此对象与数据库中的表内容对应上

2.servlet中创建一个queryCity方法

  接受前端页面传来的pid参数

String pid = req.getParameter("pid");

  调用service中的接口

    service实现类中调用Dao中的方法

  Dao中编写查询数据库的语句 并将其返回到servlet中的queryCity方法中

ArrayList<City> list =chService.queryCity(pid);

  将返回来的值转换成JSON 

String s = JSON.toJSONString(list);

  并响应回前端

resp.getWriter().print(s);

  

前端页面写法

  1.创建三个<select>标签  并给予id属性 以便后续调用

<select id="sheng">
</select>省
<select id="shi">
</select>市
<select id="qu">
</select>区

  2.在<head>内编写<script>内容

<script src="<%=request.getContextPath()%>/js/jquery-3.6.0.min.js"></script>
<script>
     /**
      *准备就绪函数
      *当页面加载完毕之后加载此块内容  
      */
    $(function (){
    
         getCityByPid(0,'#sheng')            //传参(将pid和'#sheng'传过去)并调用getCityByPid方法 将市的内容回显到下拉菜单内
                                            
         $("#sheng").change(function (){
                let pid = $("#sheng").val();  //获取id="sheng"的标签的当前value值
                getCityByPid(pid,'#shi');     //传参(将pid和'#shi'传过去)并调用getCityByPid方法 将市的内容回显到下拉菜单内
                $("#shi").empty();           //当id="sheng"的标签发生改变时 将 id="shi"和id="qu"标签内的内容清空
                $("#qu").empty();
            });
         $("#shi").change(function (){
                let pid = $(this).val();
                getCityByPid(pid,'#qu');      //传参(将pid和'#qu'传过去)并调用getCityByPid方法 将区的内容回显到下拉菜单内
                $("#qu").empty();            //当id="shi"的标签发生改变时 将id="qu"标签内的内容清空
            });
    })
    function getCityByPid(pid,area){
        $.ajax({
            /**
            *url 将data发送到什么地方
            *data 是将什么值传到url里面
            */
            url:"<%=request.getContextPath()%>/Champion",  
            data:{pid:pid,m:"queryCity"},
            type:"post",
            dataType:"json",
            success:function (obj){
                $(area).append("<option>请选择</option>"); // 由于我们是用的.change(改变事件) 所以当我们点击一个 省或市或区的时候才能触发事件
                                                           // 如果不加个表头 会导致显示的第一个数据我们无法直接点击也就无法触发.change事件
                for(let c of obj){
                    $(area).append("<option value="+c.id+">"+c.name+"</option>"); //将从后端返回的数据遍历添加进下拉菜单中
                }
            }
        });
    }
</script>

 

标签:getCityByPid,qu,sheng,pid,Ajax,联动,shi,写法,id
From: https://www.cnblogs.com/msy-2000/p/17088517.html

相关文章

  • 8种专坑同事的 SQL 写法,性能降低100倍,不来看看?
    原文地址:yq.aliyun.com/articles/725011、LIMIT语句2、隐式转换3、关联更新、删除4、混合排序5、EXISTS语句6、条件下推7、提前缩小范围8、中间结果集下推总结......
  • 嵌入式Linux中Makefile万能写法
    嵌入式Linux中Makefile万能写法对于linux系统中使用gcc进行编译:#列出当前目录下所有*.c文件SRC:=$(wildcard*.c)#将所有*.c文件转为*.o文件OBJ:=$(patsubst%.c,%.o......
  • AJAX
    什么是AjaxAjax=异步JavaScript和XMLXHR响应 1<!DOCTYPEhtml>2<html>3<head>4<metacharset="utf-8">5<title>responsesXML属性......
  • android自定义adapter之简单写法
      自定义adapter比较常用,很多人还在使用extendsBaseAdapter,然后写一大堆重复的代码,这里是提供一个封装的工具类,把重复的代码都省略掉,让adapter变的简洁一些。  给......
  • spl_autoload_register装在函数的正确写法
    AutoLoading\loading<?phpnamespaceAutoLoading;classLoadind{publicstaticfunctionautoload($className){//根据PSR-O的第4点把\转换层(目录风格......
  • 10-项目实战-ajax初体验
    一.ajax介绍1.ajax架构浏览器向网站发送请求时:URL和表单的形式提交form表单:-GET-POST特点:页面刷新除此之外,也可以基......
  • (补12月19)ORM查询优化、ORM事物操作、ORM常用字段参数、Ajax请求、Content-Type
    ORM查询优化、ORM事物操作、ORM常用字段参数、Ajax请求、Content-TypeQ查询进阶操作先产生一个对象q_obj=Q()修改默认对象q_obj.connector='or'添加查询条件,可......
  • AJAX整理目录
    原生AJAX原生AJAX概述AJAX(请求响应报文&控制台查看通信报文&node.js&express框架)AJAX发送GET请求&发送参数AJAX发送POST请求&发送参数&设置请求AJAX服务器响应JSON......
  • AJAX CORS
    视频HTML<!DOCTYPEhtml><htmllang="en"><head><metacharset="UTF-8"><metaname="viewport"content="width=device-width,initial-scale=1.0"><ti......
  • AJAX jsonp实践(验证用户名是否存在)
    视频HTML<!DOCTYPEhtml><htmllang="en"><head><metacharset="UTF-8"><metaname="viewport"content="width=device-width,initial-scale=1.0"><ti......