首页 > 其他分享 >AJAX手写JQuery框架封装AJAX请求和常见方法实现项目功能省市联动查询效果------AJAX

AJAX手写JQuery框架封装AJAX请求和常见方法实现项目功能省市联动查询效果------AJAX

时间:2023-11-18 11:05:20浏览次数:40  
标签:JQuery code area pcode AJAX ------ import NULL id

建立一个SQL表

CREATE TABLE t_stu(id BIGINT AUTO_INCREMENT PRIMARY KEY,username VARCHAR(255),age INT,address VARCHAR(255));
INSERT INTO t_stu(id,username,age,address) VALUES(NULL,"zhangsan",15,"广州")
INSERT INTO t_stu(id,username,age,address) VALUES(NULL,"Jack",15,"广州")
INSERT INTO t_stu(id,username,age,address) VALUES(NULL,"Rose",15,"广州")
SELECT  * FROM t_stu
CREATE TABLE t_area(id BIGINT PRIMARY KEY AUTO_INCREMENT,`code` VARCHAR(255),`name` VARCHAR(255),pcode VARCHAR(255))
INSERT INTO t_area(id,`code`,`name`,pcode) VALUES(NULL,'001','河北省',NULL);
INSERT INTO t_area(id,`code`,`name`,pcode) VALUES(NULL,'002','河南省',NULL);
INSERT INTO t_area(id,`code`,`name`,pcode) VALUES(NULL,'003','邯郸市','001');
INSERT INTO t_area(id,`code`,`name`,pcode) VALUES(NULL,'004','石家庄','001');
INSERT INTO t_area(id,`code`,`name`,pcode) VALUES(NULL,'005','郑州市','002');
INSERT INTO t_area(id,`code`,`name`,pcode) VALUES(NULL,'006','洛阳市','002');
INSERT INTO t_area(id,`code`,`name`,pcode) VALUES(NULL,'007','江苏省',NULL);
INSERT INTO t_area(id,`code`,`name`,pcode) VALUES(NULL,'008','南京市','007');
SELECT  * FROM t_area

手写的JQUERY

// 封装一个函数,通过这个函数就可以获取页面中的元素了
function JQuery(selector)//可能时#id或者.class这样的类选择器
{
    if(typeof selector === "string")
    {
        // 设计思路根据CSS语法
        if (selector.charAt(0) === "#")
        {
            // 根据ID获取元素
            //这个是全局对象,是根据我们的ID获取的dom对象
            IE = document.getElementById(selector.substring(1));
            //返回JQuery对象,这个有html方法
            return new JQuery();
        }
    }
    if(typeof selector === "function")
    {
        window.onload = selector;
    }
    //定义一个HTML方法
    this.html = function(htmlStr)
    {
        IE.innerHTML = htmlStr;
    }
    //定义一个click函数代替onclick方法
    this.click = function(fun)
    {
        IE.onclick = fun;
    }
    //下拉栏变化
    this.change = function(fun)
    {
        IE.onchange = fun;
    }
    //由此可知
    this.val = function(value)
    {
        if(value === undefined)
        {
            return IE.value;
        }
        else
        {
            IE.value = value;
        }
    }
    //定义一个静态方法用来发送AJAX请求
    //JS中的静态方法也还是需要有这个对象的
    //传递参数如下,1.传递的数据2.请求方法3.url地址4.是否异步执行
    JQuery.ajax = function(JsonArgs)
    {
        var xhr = new XMLHttpRequest();
        xhr.onreadystatechange = function()
        {
            if (this.readyState === 4)
            {
                if (this.status === 200)
                {
                    var JsonObj = JSON.parse(this.responseText);
                    JsonArgs.success(JsonObj);
                }
                else
                {
                    alert(this.status);
                }
            }
        }
        if(JsonArgs.type.toUpperCase() === "POST")
        {
            xhr.open("POST",JsonArgs.url,JsonArgs.async);
            xhr.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
            xhr.send(JsonArgs.data);
        }
        if(JsonArgs.type.toUpperCase() === "GET")
        {
            JsonArgs.type = "GET";
            xhr.open("GET",JsonArgs.url+"?"+JsonArgs.data,JsonArgs.async);
            xhr.send();
        }
    }
}
$ = JQuery;
//执行这个的目的是为了让静态方法能生效
new JQuery();

java后端程序

package com.bjpowernode.AJAX.servlet;
 
import com.alibaba.fastjson.JSON;
import jakarta.servlet.ServletException;
import com.bjpowernode.oa.utils.DBUtil;
import jakarta.servlet.annotation.WebServlet;
import jakarta.servlet.http.HttpServlet;
import jakarta.servlet.http.HttpServletRequest;
import jakarta.servlet.http.HttpServletResponse;
 
import java.io.IOException;
import java.io.PrintWriter;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List;
 
@WebServlet("/getAll")
public class GetAllPro extends HttpServlet
{
    @Override
    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException
    {
        request.setCharacterEncoding("UTF-8");
        response.setCharacterEncoding("UTF-8");
        response.setContentType("text/html;charset=UTF-8");
//        链接数据库
        Connection connection = null;
        PreparedStatement statement = null;
        ResultSet resultSet = null;
        String sql = null;
        String pcode = request.getParameter("code");
        if(pcode == null)
        {
            sql = "select * from t_area where pcode is null";
        }
        if(pcode != null)
        {
            sql = "select * from t_area where pcode = ?";
        }
        try
        {
            connection = DBUtil.getConnection();
            statement = connection.prepareStatement(sql);
            if(pcode != null)
            {
                statement.setString(1,request.getParameter("code"));
            }
            resultSet = statement.executeQuery();
            List<Area> list = new ArrayList<>();
            while(resultSet.next())
            {
                Area area = new Area();
                area.setId(resultSet.getLong("id"));
                area.setCode(resultSet.getString("code"));
                area.setName(resultSet.getString("name"));
                area.setPcode(resultSet.getString("pcode"));
                list.add(area);
            }
            PrintWriter out = response.getWriter();
            out.println(JSON.toJSONString(list));
        }
        catch (SQLException e)
        {
            throw new RuntimeException(e);
        }
    }
}

标签:JQuery,code,area,pcode,AJAX,------,import,NULL,id
From: https://blog.51cto.com/u_16322355/8459767

相关文章

  • 武汉灰京文化传媒:多元化推广策略助力游戏产品蓬勃发展
        在竞争激烈的游戏市场中,武汉灰京文化传媒有限公司凭借其卓越地位,成功地将游戏产品推广得更广泛,实现了用户互动和忠诚度的提升。这一成就不仅源自于广泛的渠道资源,还有其紧密的行业合作关系。该公司的推广策略不仅仅依赖于传统的广告和宣传手段,还积极探索新的推广途径,如......
  • 第22届世界杯阿根廷队中后场防守失球特征分析 -开题
    1选题依据1.1研究目的及研究意义1.1.1研究目的比赛中的失球情况为研究对手进攻情况起着相当关键的作用。因此,本课题研究的切入点是从比赛中攻守双方的失球情况入手,来反映出攻守双方的进攻规律。“比赛中失球的时间一般具有一定的规律性,但具体某场比赛的失球又有较强的特殊性。比......
  • 铺先生:转让小吃店有哪些好办法?这三点你可以试试
    转让小吃店有哪些好办法?小吃店可谓是当今时代人们最喜爱的食品之一了。而对于转让的小吃店来说,其实也挺好转的,但也是建立在用对方法的前提上的。下面就让小编来跟大家说一下转让小吃店的好办法吧。1. 转让费合理店铺转让一定是会涉及到一些费用的,其中,买家最在乎的肯定是转让费了,而......
  • 表现层框架设计
    表现层框架设计是指在软件系统中,将用户界面(UI)和用户交互逻辑与后端业务逻辑分离,使用特定的框架来组织和管理表现层的功能和结构。下面是表现层框架设计的一般步骤和常用技术:确定需求和功能:首先,明确系统的需求和功能,确定用户界面需要展示的内容和交互逻辑。这包括界面元素、用户操作......
  • 互联网医院牌照|湖南互联网医院牌照申请流程
    互联网医院牌照是由卫生健康行政部门颁布的,所有材料审核通过后,相关部门授予《医疗机构执业许可证》,取得牌照后才有开展互联网诊疗活动的资质,但开展线上问诊也需要向发证机关提出申请,下面小编就给大家讲解下互联网医院牌照申请流程。 一、向实体医院登记机关提交以下材料: 1、设置......
  • 会议室管理系统开发与设计 ——论文文档
    摘 要信息时代的到来,计算机与电子商务迅猛发展,企业间竞争激烈,随着网络技术的迅猛发展,它开始由有形市场一步步向网络转移。随着互联网在全球范围内普及开来,人们可以通过互联网进行各种信息交流,这无疑给人类带来了巨大的便利。相应地企业管理步入信息化轨道,因而现代会议室管理系统......
  • 机顶盒cpuinfo是armv7l架构的,要搞aarch64
    如果你的机顶盒CPU是ARMv7l架构的,但你想要在它上面运行aarch64的软件,你可以尝试以下方法:检查硬件支持:首先确认你的机顶盒是否支持aarch64指令集。你可以查看机顶盒的规格说明书或者联系制造商来获取支持信息。安装aarch64软件包:如果你的机顶盒支持aarch64,你可以尝试安装aarch64的软......
  • 椭圆曲线
    椭圆曲线简单总结写这篇文章原因是老是忘记每个符号代表什么,所以搞一个简单的对照表元素符号参考起始点G,可以是任意一点私钥dA一个随机数dA公钥QAQA=dAxG随机数k消息摘要zP点k*G签名(R,S)R是P点的x坐标\(S=k^{-1}(z+dA......
  • 学习笔记10
    教材知识点总结当涉及Unix/Linux系统编程中的块设备I/O缓冲区、UnixI/O缓冲区管理算法、新的I/O缓冲区管理算法、PV算法、多任务处理系统、缓冲区管理器、磁盘驱动程序、磁盘控制器、磁盘中断、虚拟磁盘、模拟系统的改进、PV算法的改进等知识点时,我们可以进行以下详细的总结和拓......
  • 三大范式的实际作用
    第一范式(1NF):每一列都是不可分割的原子数据项好处:减少了数据冗余  存在可再分项,一条订单存储了多个商品 班级日期学号姓名图书编码图书名单价数量C11-221程少商1001星汉灿烂455001002月升沧海32200......