当前位置: 首页 > article >正文

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

一、添加


要求:

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


实现:

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.从数据库里调数据

请求路径;

请求方式;

参数域;

请求成功;

请求失败;

 

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

$(function(){
		//发起请求
		$.ajax({
			url:"SearchProduct",//请求路径
			type:"get",//请求方式
		
			success:function(value){//请求成功
				
				$("tbody").empty()
				var arr=value.data
				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>") 
				}
				
				
			},
			error:function(){//请求失败
				alert("出错啦")
			},
		})

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

@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. 点击“添加”按钮后
//显示添加模块
		$(".addbtn").on("click",function(){
			$(".add_model").css("display","block")
			
		})

$3. 输入框添加

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

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

//添加
		$(".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.后端接收参数,并返回信息 

//		解决中文乱码
		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.点击“取消”按钮板块消失
//隐藏添加模块
		$(".cancel").on("click",function(){
			$(".add_model").css("display","none")
		})

4.效果


二、删除

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

2.删除

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

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属性值传入后端

//删除
		$("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.后端接收参数,执行逻辑,返回信息 

//		解决中文乱码
		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;
	}

隐藏模块

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

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

 

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

#1.信息回显

val()获取值

//修改弹框展示回显
		$("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("出错啦")
				},
			})
			
			
		})
//		解决中文乱码
		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)(请求路径;请求方式;参数域;请求成功;请求失败)

//修改
		$(".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("修改出错啦")
				},
			})
			
		})

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

//		解决中文乱码
		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.kler.cn/news/327171.html

相关文章:

  • 单片机的原理及应用
  • 2024年华为OD机试真题-找终点-Java-OD统一考试(E卷)
  • AIGC学习笔记—minimind详解+训练+推理
  • elasticsearch单个node节点写入数据
  • 中间层架构设计:构建稳健的企业级服务
  • [Day 81] 區塊鏈與人工智能的聯動應用:理論、技術與實踐
  • 表现层架构设计:打造高效、可维护的前端系统
  • JavaScript网页设计案例深度解析:从理论到实践
  • frps+nginx实现访问ip的记录
  • 测试用例_边界值介绍(需求自动化生成用例方法论)
  • 预训练技巧:在训练末尾对领域数据上采样
  • Linux shell脚本set -e的作用详解
  • Linux 性能优化之CPU 多级缓存
  • ip的生命周期是多久
  • el-table添加fixed后错位问题
  • vscode【实用插件】Project Manager 项目管理
  • fastAPI教程:jinja2模板
  • 代码随想录:孤岛类问题
  • python UNIT 3 选择与循环(2)
  • 笔记本电脑如何改ip地址:操作指南与注意事项
  • Avalonia 项目结构说明
  • Elasticsearch 开放推理 API 增加了对 Google AI Studio 的支持
  • 【python进阶攻略12】C扩展
  • 破局汽车智能化浪潮:Tire 1供应商的网络优化与升级策略
  • leetcode|刷算法 线段树原理以及模板
  • 用OpenSSL搭建PKI证书体系
  • react 前端框架中的 三层(service,model,index)具体操作
  • CSS 参考手册
  • 某星球预约抢票脚本
  • 25中国烟草校园招聘面试问题总结 烟草面试全流程及面试攻略