当前位置:首页 » 《资源分享》 » 正文

jQuery 使用$.ajax()方法进行级联查询_m0_55554710的博客

6 人参与  2021年09月17日 10:23  分类 : 《资源分享》  评论

点击全文阅读


jQuery 使用$.ajax()方法进行级联查询

$.ajax()方法可以使用 HTTP Get 和 HTTP Post 从远程服务器上请求文本、HTML、XML 或 JSON 同时能够把接收的数据更新到 DOM 对象

$.ajax()语法

$.ajax( { name:value, name:value, ... } )
说明:参数是 json 的数据,包含请求方式,数据,回调方法等
async : 布尔值,表示请求是否异步处理。默认是 true
contentType :发送数据到服务器时所使用的内容类型。默认是:
"application/x-www-form-urlencoded"。
data:规定要发送到服务器的数据,可以是:string, 数组,多数是 json
dataType:期望从服务器响应的数据类型。jQuery 从 xml, json, text,, html 这些中测试最可能
的类型
"xml" - 一个 XML 文档
"html" - HTML 作为纯文本
"text" - 纯文本字符串
"json" -JSON 运行响应,并以对象返回
error(xhr,status,error):如果请求失败要运行的函数, 其中 xhr, status, error 是自定义的形参名
success(result,status,xhr):当请求成功时运行的函数,其中 result, status, xhr 是自定义的形参
名
type:规定请求的类型(GETPOST 等),默认是 GETget,post 不用区分大小写
url:规定发送请求的 URL

demo

准备一个html文件和一个java类实现HttpServlet接口并且重写doget方法或者dopost方法

编写一个html文件

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <script type="text/javascript" src="../jquery-3.6.0/jquery-3.6.0.js"></script>
</head>
<!--使用jquery和ajax进行异步处理-->
<body>
<!--创建两个选择栏,根据第一个选择栏的选择情况改变第二个选择栏的内容-->
<select id="main">
    <option>1</option>
    <option>2</option>
    <option>3</option>
    <option>4</option>
    <option>5</option>
</select>
<select id="second">
    <option>1</option>
    <option>1</option>
    <option>1</option>
    <option>1</option>
    <option>1</option>
</select>
</body>
</html>
<script>
    var $getmainselect = $("#main"); //获取第一个选择栏的jquery对象
    var $getsecondselect = $("#second"); //获取第二个选择栏的jquery对象
    var $getsecondoption = $("#second>option"); //获取第二个选择栏的全部选项的jquery对象
    //当第一个选择栏发生改变时进行触发异步级联操作
    $getmainselect.on("change",function (){
        var $getmainselected = $("#main>option:selected")
        $.ajax({
            async:true, 
            data:{"key":$getmainselected.text()},
            dataType:"json",
            error:function (){
                $getsecondselect.empty();
            },
            success:function (data){
                $getsecondoption.text(data.key);
            },
            type:'GET',
            url:"../queryajaxtest"
        })
    })
</script>

编写一个java类实现HttpServlet接口

import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.io.PrintWriter;
public class QueryAjaxTest extends HttpServlet {
    @Override
    protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        /*使用json方式传值*/
        String json="{}"; //当传值为空的时候返回{}
        resp.setContentType("application/json;charset=UTF-8");
        req.setCharacterEncoding("utf-8");
        String key = req.getParameter("key"); //根据参数名获取参数
        /*这里可以加上根据获取到的参数进行数据库查询和处理结果集之类的操作*/
        /*网络上有很多根据类来构建json字符串的jar包 例如:jackson*/
        json = "{\"key\":\""+key+"\"}";  //因为是demo所以我就把参数本身以json方式返回
        PrintWriter out= resp.getWriter();
        out.print(json); //输出流输出
        out.flush();//刷新通道
        out.close();//关闭
    }
}

Servlet注册

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd"
         version="4.0"
>
    <servlet>
        <servlet-name>queryajaxtest</servlet-name>
        <servlet-class>test01.QueryAjaxTest</servlet-class>
    </servlet>
    <servlet-mapping>
        <servlet-name>queryajaxtest</servlet-name>
        <url-pattern>/queryajaxtest</url-pattern>
    </servlet-mapping>
</web-app>

demo展示

当第一个选择框改变内容时,第二个选择框会根据第一个选择框的内容进行改变
在这里插入图片描述


点击全文阅读


本文链接:http://zhangshiyu.com/post/27976.html

选择  第一个  请求  
<< 上一篇 下一篇 >>

  • 评论(0)
  • 赞助本站

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

关于我们 | 我要投稿 | 免责申明

Copyright © 2020-2022 ZhangShiYu.com Rights Reserved.豫ICP备2022013469号-1