06 JQuery调用接口

news/2024/7/10 23:41:01 标签: jquery, 前端

文章目录

  • 一、Qs.js库介绍
    • 1. Qs简介
    • 2. Qs.parse
    • 3. Qs.stringify
  • 二、jQuery调用接口
    • 1. 增加(Create)
    • 2. 删除(Delete)
    • 3. 读取(Read)
    • 4. 更新(Update)
  • 三、示例


一、Qs.js库介绍

1. Qs简介

Qs是一个url参数转化(parse和stringify)的js库。

  • 本地引入
<script src="qs-6.11.2.min.js"></script>
  • CDN引入
<script src="https://cdn.bootcdn.net/ajax/libs/qs/6.11.2/qs.min.js"></script>

2. Qs.parse

  • 字符串转换为对象
<script>
	let params = "a=a1&b=b1&c=c1"
	console.log(Qs.parse(params))
</script>
  • 控制台日志
    在这里插入图片描述

3. Qs.stringify

  • 对象转换为字符串
<script>
	let params = {a: "a1", "b": "b1", "c": "c1"}
	console.log(Qs.stringify(params))
</script>
  • 控制台日志
    在这里插入图片描述

二、jQuery调用接口

1. 增加(Create)

$.ajax({
    url: '/api/save',
    method: 'post',
    data: {
        name,
        status,
    },
    success(res) {
        console.log('数据创建成功');
    },
    error(error) {
        console.log(error);
    }
})

2. 删除(Delete)

$.ajax({
    url: '/api/delete',
    method: 'post',
    data: {
        role_id: id
    },
    success(res) {
        console.log('数据删除成功');
    },
    error(error) {
        console.log(error);
    }
})

3. 读取(Read)

$.ajax({
	url: '/api/list',
	method: "post",
	data: Qs.stringify(data),
	success(res) {
		res.data.forEach(function (item, index) {
			// 数据处理
		})
	},
	error(error) {
		console.log(error);
	}
})

4. 更新(Update)

$.ajax({
    url: '/api/update',
    method: 'post',
    data: {
        role_id,
        name,
        status,
    },
    success(res) {
        console.log('数据更新成功');
    },
    error(error) {
        console.log(error);
    }
})

三、示例

在这里插入图片描述

<!DOCTYPE html>
<html lang="en">
<head>
    <title>Test</title>
    <link rel="icon" href="data:;base64,=">
    <meta charset="UTF-8">
    <meta http-equiv="Cache-Control" content="no-cache, no-store, must-revalidate">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <script src="https://cdn.bootcdn.net/ajax/libs/jquery/3.7.1/jquery.min.js"></script>
    <script src="https://cdn.bootcdn.net/ajax/libs/qs/6.11.2/qs.min.js"></script>
</head>
<style>
    table, th, td {
        border: 1px solid;
        border-collapse: collapse;
        text-align: center;
        line-height: 30px;
        width: 600px;
        margin-top: 20px;
    }
    .dialog {
        display: none;
        width: 100%;
        height: 200vh;
        background-color: rgba(0, 0, 0, 1);
        position: absolute;
        top: 0;
        left: 0;
        line-height: 50px;
    } 
    .dialog .container {
        margin: 10;
        font-size: 18px;
        width: 60%;
        height: 300px;
        background-color: #ffffff;
        text-align: center;
    } 
</style>
 <body>
    <input type="text">
    <button id="search">查询</button>
    <button id="adddata">添加</button>
    <table>
        <thead>
            <th>角色名称</th>
            <th>状态</th>
            <th>序号</th>
            <th>操作</th>
        </thead>
        <tbody>
        </tbody>
    </table>
    <!-- 添加和编辑框 -->
    <div class="dialog">
        <div class="container">
            <div class="dialog_center">
            <div class="dialog_header">
                添加角色
            </div>
            <div class="dialog_center" style="display:none;">
                <div>角色ID:<input type="text" name="role_id"></div>
            </div>
            <div class="dialog_center">
                <div>角色名称:<input type="text" name="name"></div>
            </div>
            <div class="dialog_center">
                <div>状态: 有效 <input type="radio" name="status" value="true">
                    失效<input type="radio" name="status" value="false">
                </div>
            </div>
            <div class="dialog_center">
                <div>序号:<input type="text" name="sort"></div>
            </div>
            <div class="dialog_footer">
                <button class="submit">确定</button>
                <button class="cancel">取消</button>
            </div>
        </div>
    </div>
</body>
<script>
	var baseURL = "http://127.0.0.1:888/testmanage/api/testRole/"
	// 查询按钮
	$('#search').click(function () {
		$('tbody').empty();
		let temp = {
			name: $('input:first').val(),
		};
		$.ajax({
			url: baseURL + "list",
			method: "post",
			data: Qs.stringify(temp),
			success(res) {
				res.data.forEach(function (item, index) {
					var newTr =
						`<tr>
								<td style="display:none;">${item.role_id}</td>
								<td>${item.name}</td>	
								<td>${item.status}</td>	
								<td>${item.sort}</td>	
								<td>
									<button class='toDelete' id='${item.role_id}'>删除</button>
									<button class='toEdit' obj='${JSON.stringify(item)}'>修改</button>
								</td>	
						</tr>`
					$('tbody').append(newTr)
				})

			},
			error(error) {
				console.log(error);
			}
		})
	})

	// 添加按钮
	$('#adddata').click(function () {
		$('.dialog').fadeIn()
		$('input[name=role_id]').val('')
		$('input[name=name]').val('')
		$('input[type=radio][value=true]').prop('checked', 'true')
		$('input[name=sort]').val('')
	})

	// 修改按钮
	$('table tbody').on('click', '.toEdit', function () {
		$('.dialog_header').html('修改角色')
		$('.dialog').fadeIn()
		obj = $(this).attr('obj')
		obj = JSON.parse(obj)
		$('input[name=role_id]').val(obj.role_id)
		$('input[name=name]').val(obj.name)
		$('input[type=radio][value = ' + obj.status + ']').prop('checked', 'true')
		$('input[name=sort]').val(obj.sort)
	})
	
	// 添加和编辑框 取消按钮
	$('.cancel').click(function () {
		$('.dialog').fadeOut()
	})
	
	// 添加和编辑框 确定按钮
	$('.submit').click(function () {
		var role_id = $('input[name=role_id]').val()
		var name = $('input[name=name]').val()
		var status = $('input[type=radio]:checked').val()
		var sort = $('input[name=sort]').val()
		var saveupdate = 'update'
		if (role_id == '') {
			saveupdate = 'save'
		}
		$.ajax({
			url: baseURL + saveupdate,
			method: 'post',
			data: {
				role_id,
				name,
				status,
				sort,
			},
			success(res) {
				console.log(res);
				$('.dialog').fadeOut()
				$('#search').trigger('click')
			},
			error(error) {
				console.log(error);
			}
		})
	})
	
	// 删除按钮
	$('table tbody').on('click', '.toDelete', function () {
		var id = $(this).attr('id')
		$.ajax({
			url: baseURL + 'delete',
			method: 'post',
			data: {
				role_id: id
			},
			success(res) {
				$('#search').trigger('click')
			},
			error(error) {
			  console.log(error);
			}
		})
	})

	// 打开页面时查询
	$('#search').trigger('click')
</script>
</html>

http://www.niftyadmin.cn/n/5248438.html

相关文章

ORACLE数据库实验总集 实验八 Oracle 数据库备份与恢复

一、 实验目的 &#xff08;1&#xff09; 掌握 Oracle 数据库各种物理备份的方法。 &#xff08;2&#xff09; 掌握 Oracle 数据库各种物理恢复的方法。 &#xff08;3&#xff09; 掌握数据的导出与导入操作。 二、实验要求 &#xff08;1&#xff09; 对 BOOKSALES 数据库进…

【python】vscode中选择虚拟环境venv

vscode 怎么指定 python venv&#xff1f; 在VSCode中选择Python解释器&#xff1a; 打开命令面板&#xff1a;按下 CtrlShiftP&#xff08;Windows/Linux&#xff09;或 CmdShiftP&#xff08;Mac&#xff09;。在命令面板中&#xff0c;键入 “Python: Select Interpreter”…

mixamo根动画导入UE5问题:滑铲

最近想做一个跑酷游戏&#xff0c;从mixamo下载滑铲动作后&#xff0c;出了很多动画的问题。花了两周时间&#xff0c;终于是把所有的问题基本上都解决了。 常见问题&#xff1a; 1.【动画序列】人物不移动。 2.【动画序列】人物移动朝向错误。 3.【蒙太奇】人物移动后会被拉回…

GPT实战系列-Baichuan2等大模型的计算精度与量化

GPT实战系列-Baichuan2等大模型精度与量化 不做特别处理&#xff0c;深度学习默认参数精度为浮点32位精度&#xff08;FP32&#xff09;。大模型参数庞大&#xff0c;10-1000B级别&#xff0c;如果不注意优化&#xff0c;既耗费大量的显卡资源&#xff0c;也耗费大量的训练时间…

3dMax vs Cinema4d哪个更好更适合你?

Cinema 4d和3dMax的区别 用于游戏风格、开发和风格可视化的3D建模、动画和渲染软件系统&#xff0c;为用户提供制作和编辑动画、视觉效果和环境的灵活性。4D CINEMA可能是由MAXON构建的强大的3D建模、运动图形、绘画和动画软件系统。Cinema 4D将在每个Windows和MAC操作系统上运…

SAP UI5 walkthrough step9 Component Configuration

在之前的章节中&#xff0c;我们已经介绍完了MVC的架构和实现&#xff0c;现在我们来讲一下&#xff0c;SAPUI5的结构 这一步&#xff0c;我们将所有的UI资产从index.html里面独立封装在一个组件里面 这样组件就变得独立&#xff0c;可复用了。这样&#xff0c;无所什么时候我…

智汇恒星科技|控乐屋.全宅智能冠军代言来啦, 智慧家居千亿蓝海

随着5G、大数据、云计算、物联网等技术的发展&#xff0c;智能化正覆盖人们生活的方方面面&#xff0c;全屋智能的出现为“一键式”智能家居生活享受提供无限可能。近年来智能家居行业总体规模增长迅速&#xff0c;数据显示&#xff0c;2022年中国智能家居行业市场规模约为6200…

55.MQ高级特性

目录 一、RabbitMQ部署指南。 1&#xff09;单机部署。 1.1.下载镜像 1.2.安装MQ 2&#xff09;安装DelayExchange插件。 2.1.下载插件 2.2.上传插件 2.3.安装插件 2.4.使用插件。 3&#xff09;集群部署。 3.1.集群分类 3.2.获取cookie 3.3.准备集群配置 3.4.启…