后端-对表格数据进行添加、删除和修改

news/2024/9/29 22:26:23/

一、添加


要求:

        按下添加按钮出现一个板块输入添加的数据信息,点击板块的添加按钮,添加;点击取消,板块消失。


实现:

1.首先,设计页面输入框格式,表格首行

2.从数据库里调数据

3.添加


 

1.首先,设计页面输入框格式,表格首行

<body>商品名称:<input type="text" class="text"><input type="button" value="查找" class="searchbtn" ><input type="button" value="添加" class="addbtn" >
<table border="1"><thead><tr><th>商品名称</th><th>数量</th><th>价格</th><th>操作</th></tr></thead><tbody><!-- <tr><td>id</td><td>姓名</td><td>年龄</td><td>性别</td><td>班级</td><th><input type="button" value="修改"><input type="button" value="删除"></th></tr>


 

2.从数据库里调数据

请求路径;

请求方式;

参数域;

请求成功;

请求失败;

 

这里调数据不需要传参数,把数据库返回的信息在表格后插入。

javascript">$(function(){//发起请求$.ajax({url:"SearchProduct",//请求路径type:"get",//请求方式success:function(value){//请求成功$("tbody").empty()var arr=value.datafor(var i=0;i<arr.length;i++){$("tbody").append("<tr>"+"<td>"+arr[i].name+"</td>"+"<td>"+arr[i].num+"</td>"+"<td>"+arr[i].price+"</td>"+"<td><input type='button' value='修改' class='update' index='"+arr[i].name+"'><input type='button' value='删除' class='delete' index='"+arr[i].name+"'></td>"+"</tr>") }},error:function(){//请求失败alert("出错啦")},})

服务生接收请求,执行逻辑 ,返回信息。(查找数据,后端返回数据)

java">@WebServlet("/SearchProduct")
public class SearchProduct extends HttpServlet {private static final long serialVersionUID = 1L;/*** @see HttpServlet#HttpServlet()*/public SearchProduct() {super();// TODO Auto-generated constructor stub}/*** @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)*/protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
//		解决中文乱码request.setCharacterEncoding("utf-8");response.setCharacterEncoding("utf-8");
//		设置后端给前端返回的数据为json格式response.setContentType("text/json;charset=utf-8");
//		设置成这样,必须有一个json格式//		接收参数
//		查找String sql="select * from 商品表";String[] colums= {"name","num","price"};String res=MysqlUtil.getJsonBySql(sql, colums);System.out.println(res);
//		后端给前端返回数据response.getWriter().write(res);

后端数据如图: 


3.添加

$1.设计添加的版块样式(刚开始隐藏,只有点击“添加”按钮后显现)
<div class='add_model'>
添加
<br><br>
名称:<input type='text' class='name'><br>
数量:<input type='text' class='num'><br>
价格:<input type='text' class='price'><br>
<input type="button" value="添加" class="add" >	<input type="button" value="取消" class="cancel" >
</div>
.add_model{width:240px;heigth:150px;border:4px solid blue;margin-top:20px;padding:15px;display:none;}
$2. 点击“添加”按钮后
javascript">//显示添加模块$(".addbtn").on("click",function(){$(".add_model").css("display","block")})

$3. 输入框添加

#1. val()  获取输入框的值

#2. 前端获取的值传到后端(请求路径;请求方式;参数域;请求成功;请求失败)

javascript">//添加$(".addbtn").on("click",function(){//获取输入框里的值var name=$(".name").val()var num=$(".num").val()var price=$(".price").val()console.log(name)console.log(num)console.log(price)$.ajax({url:"AddServlet",//请求路径type:"post",//请求方式data:{name,num,price},//参数域success:function(value){//请求成功console.log(value)//页面刷新location.reload()},error:function(){//请求失败alert("出错啦")},})})

#3.后端接收参数,并返回信息 

java">//		解决中文乱码request.setCharacterEncoding("utf-8");response.setCharacterEncoding("utf-8");//接收参数String name=request.getParameter("name");String num=request.getParameter("num");String price=request.getParameter("price");System.out.println(name);System.out.println(num);System.out.println(price);//添加String sql="insert into 商品表(name,num,price) values(\""+name+"\","+num+","+price+")";int n = MysqlUtil.add(sql);//返回信息String res="添加失败";if(n>0) {res="添加成功";}response.getWriter().write(res);}

#4.请求成功,页面刷新

location.reload()


$4.点击“取消”按钮板块消失
javascript">//隐藏添加模块$(".cancel").on("click",function(){$(".add_model").css("display","none")})

4.效果


二、删除

1.同以上“添加”部分相同,假设现在已经从数据库调出数据(不再赘述,同步骤一、添加 1.2.)

2.删除

因“删除”键是从数据库调数据时后加的,在表格的tbody里,故需要在tbody里找“删除”按钮。在“添加”板块已经对“删除”按钮加class属性。

javascript">for(var i=0;i<arr.length;i++){$("tbody").append("<tr>"+"<td>"+arr[i].name+"</td>"+"<td>"+arr[i].num+"</td>"+"<td>"+arr[i].price+"</td>"+"<td><input type='button' value='修改' class='update' index='"+arr[i].name+"'><input type='button' value='删除' class='delete' index='"+arr[i].name+"'></td>"+"</tr>") }

tips:

我这里的index属性值设的是name,如果有id可以设成id 


1.在tbody里找到删除按钮

2.得到Index属性值

3.前端传入后端(请求路径;请求方式;参数域;请求成功;请求失败)

把得到的Index属性值传入后端

javascript">//删除$("tbody").on("click",".delete",function(){var id= $(this).attr("index")$.ajax({url:"DeleteServlet",//请求路径type:"post",//请求方式data:{id},//参数域success:function(value){//请求成功alert(value)//页面刷新location.reload()},error:function(){//请求失败alert("出错啦")},})})

4.后端接收参数,执行逻辑,返回信息 

java">//		解决中文乱码request.setCharacterEncoding("utf-8");response.setCharacterEncoding("utf-8");//		接收参数String id=request.getParameter("id");
//		删除String sql="delete from 商品表  where name = '"+id+"'";int num=MysqlUtil.del(sql);
//		返回信息String res="删除失败";if(num>0) {res="删除成功";}response.getWriter().write(res);}

 3.效果

数据库数据如图: 


三、修改

要求:

点击tbody中的修改按钮,出现修改的板块,

板块中要回显信息,在原有的基础上修改信息。

点击“取消”按钮板块消失


实现:

1. 前两个步骤还是同“添加”1.2.

2. 修改

$1. 设计修改的版块样式(刚开始隐藏,只有点击“添加”按钮后显现)
<div class='update_model'>
修改
<br><br>
名称:<input type='text' class='u_name'><br>
数量:<input type='text' class='u_num'><br>
价格:<input type='text' class='u_price'><br>
<input type="button" value="修改" class="updatebtn" >	<input type="button" value="取消" class="u_cancel" >
</div>
.update_model{width:240px;heigth:150px;border:4px solid gold;margin-top:20px;padding:15px;display:none;}

隐藏模块

 两个模块不冲突(不同时显示)

javascript">//显示添加模块$(".addbtn").on("click",function(){$(".add_model").css("display","block")$(".update_model").css("display","none")})
javascript">//隐藏修改模块$(".u_cancel").on("click",function(){$(".update_model").css("display","none")})

 

$2. 点击“修改”按钮后

#1.信息回显

val()获取值

javascript">//修改弹框展示回显$("tbody").on("click",".update",function(){$(".add_model").css("display","none")$(".update_model").css("display","block")var id=($(this).attr("index"))$.ajax({url:"SearchByName",//请求路径type:"get",//请求方式data:{id},//参数域success:function(value){//请求成功console.log(value)var obj=value.data[0]$(".u_name").val(obj.name)$(".u_num").val(obj.num)$(".u_price").val(obj.price)$(".updatebtn").attr("index",obj.name)},error:function(){//请求失败alert("出错啦")},})})
java">//		解决中文乱码request.setCharacterEncoding("utf-8");response.setCharacterEncoding("utf-8");
//		设置后端给前端返回的数据为json格式response.setContentType("text/json;charset=utf-8");String id=request.getParameter("id");
//		查找String sql="select * from 商品表  where name = '"+id+"'";String[] colums= {"name","num","price"};String res=MysqlUtil.getJsonBySql(sql, colums);System.out.println(res);
//		后端给前端返回数据response.getWriter().write(res);}

#2.修改

传入参数(name,num,price,id)(请求路径;请求方式;参数域;请求成功;请求失败)

javascript">//修改$(".updatebtn").on("click",function(){//获取输入框里的值var name=$(".u_name").val()var num=$(".u_num").val()var price=$(".u_price").val()var id=$(this).attr("index")console.log(id)$.ajax({url:"UpdateServlet",//请求路径type:"post",//请求方式data:{name,num,price,id},//参数域success:function(value){//请求成功console.log(value)//页面刷新location.reload()},error:function(){//请求失败alert("修改出错啦")},})})

后端接收参数 ,并返回信息 

java">//		解决中文乱码request.setCharacterEncoding("utf-8");response.setCharacterEncoding("utf-8");//接收参数String name=request.getParameter("name");String num=request.getParameter("num");String price=request.getParameter("price");String id=request.getParameter("id");System.out.println(name);System.out.println(num);System.out.println(price);//修改String sql="update 商品表 set name=\""+name+"\",num="+num+",price="+price+" where name=\""+id+"\"";int n = MysqlUtil.add(sql);//返回信息String res="修改失败";if(n>0) {res="修改成功";}response.getWriter().write(res);}

#3.请求成功,页面刷新

location.reload()


3.效果


http://www.ppmy.cn/news/1532115.html

相关文章

YOLOv9改进策略【Conv和Transformer】| AssemFormer 结合卷积与 Transformer 优势,弥补传统方法不足

一、本文介绍 本文记录的是利用AssemFormer优化YOLOv9的目标检测网络模型。传统卷积和池化操作会导致信息丢失和压缩缺陷,且传统的注意力机制通常产生固定维度的注意力图,忽略了背景中的丰富上下文信息。本文的利用AssemFormer改进YOLOv9,以在特征传递和融合过程中增加多尺…

[CSP-J 2022] 解密

题目来源&#xff1a;洛谷题库 [CSP-J 2022] 解密 题目描述 给定一个正整数 k k k&#xff0c;有 k k k 次询问&#xff0c;每次给定三个正整数 n i , e i , d i n_i, e_i, d_i ni​,ei​,di​&#xff0c;求两个正整数 p i , q i p_i, q_i pi​,qi​&#xff0c;使 n …

【Ubuntu】minicom安装、配置、使用以及退出

目录 1 安装 2 配置 3 使用 4 退出 minicom是一个串口通信的工具&#xff0c;以root权限登录系统&#xff0c;可用来与串口设备通信。 1 安装 sudo apt-get install minicom 2 配置 使用如下命令进入配置界面&#xff1a; sudo minicon -s 进入配置界面后&#xff0c;…

打造自己的解析大模型:模型的安装与推理

RAG系统中要快速构建AI助理&#xff0c;首先要高效、准确地建立知识库&#xff0c;而实现这一点的关键便是具备一个功能强大的文档解析器。在上一篇中&#xff0c;我们介绍了PdfParser&#xff0c;本篇将深入讨论该解析器所依赖的模型&#xff0c;以及如何在Windows环境中安装并…

[模拟]图形变换

题目描述 给定 m m m 行 n n n 列的图像各像素点灰度值&#xff0c;对其依次进行一系列操作后&#xff0c;求最终图像。 其中&#xff0c;可能的操作及对应字符有如下四种&#xff1a; A A A&#xff1a;顺时针旋转 90 90 90 度。 B B B&#xff1a;逆时针旋转 90 90 9…

服务器开通个人账户

给服务器添加新用户&#xff0c;然后后续的软链接操作 &#xff08;文件不要放到home&#xff09;放到data盘中 1、添加新用户 首先登录 root 账户 # 创建xxx用户 sudo useradd -m -s /bin/bash xxx # 添加密码 sudo passwd xxx # 对应位置建立文件夹xxx-dir 数据盘位置建…

数组的实现原理(Java版)

目录 一.数组是什么&#xff1f; 内存分配&#xff1a; 特点&#xff1a; 数组的实现原理&#xff1a; 时间复杂度&#xff1a; 二.Java数组的实现&#xff1a; 总结&#xff1a; 一.数组是什么&#xff1f; 数组&#xff08;Array&#xff09; 是一种数据结构&#xf…

基于SpringBoot+Vue的旅游攻略平台管理系统

作者&#xff1a;计算机学姐 开发技术&#xff1a;SpringBoot、SSM、Vue、MySQL、JSP、ElementUI、Python、小程序等&#xff0c;“文末源码”。 专栏推荐&#xff1a;前后端分离项目源码、SpringBoot项目源码、Vue项目源码、SSM项目源码 精品专栏&#xff1a;Java精选实战项目…