jQuery+Ajax动态添加表格

     最近做课设,涉及到前端知识,设计的项目需要用jQuery动态添加删除html中table的tr和td,试遍了网上的代码都无济于事,无奈只能自己编写。先展示运行结果:

详细代码如下:

dao层代码:

//查看所有用户
		public List<User> findAllUser() throws Exception {
			Connection conn = DBUtil.getConnection();
			String sql = "select * from user";
			PreparedStatement ps = conn.prepareStatement(sql);
			ResultSet rs = ps.executeQuery();
			List<User> users = new ArrayList<User>();
			while (rs.next()) {
				User user = new User();
				user.setId(rs.getString("user_id"));
				user.setName(rs.getString("name"));
				user.setPassword(rs.getString("password"));
				user.setStatus(rs.getString("status"));
				users.add(user);
			}
			return users;
		}

service层代码:

//查看所有用户信息
	public List<User> findUserService() {
		List<User>users = null;
		try {
			users = uDao.findAllUser();
		} catch (Exception e) {
			e.printStackTrace();
		}
		return users;
	}

controller层代码:

package com.exam.controller;

import java.io.IOException;
import java.util.List;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONArray;
import com.exam.entity.User;
import com.exam.service.UserService;
import com.exam.service.impl.UserServiceImpl;

import sun.tools.jar.resources.jar;

public class FindUserContro extends HttpServlet {
	private UserService us = new UserServiceImpl();

	@Override
	protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
		doPost(req, resp);
	}

	@Override
	protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
		resp.setHeader("Content-type", "text/html;charset=utf-8");  
		resp.setCharacterEncoding("utf-8");
		List<User> users = us.findUserService();
        //将结果转换为json字符串,以便前端接收
		String jsonStr = JSON.toJSONString(users);
		resp.getWriter().println(jsonStr);
		
	}
	
}

html代码:

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title>学生管理界面</title>
		<style type="text/css">
			table{
				border-right: gray 1px solid;
				border-top: gray 1px solid;
				border-left: gray 1px solid;
				width: 100%;
				word-break: break-all;
				border-bottom: gray 1px solid;
				border-collapse: collapse;
				background-color: #f5fafe;
				word-wrap: break-word;
			}
			#selectstu {
				background-color: #97CBFF;
				margin-top: 10px;
				height: 25px;
			}
			p {
				text-align: center;
				font-weight: bold;
			}
			#addstu {
				margin-top: 8px;
				text-align: right;
				padding-right: 50px;
			}
			td{
				cursor: hand;
				height: 22px;
				text-align: center;
			}
		</style>
		<script type="text/javascript" src="scripts/jquery.min.js"></script>
		<script type="text/javascript">
		//动态添加行,页面加载时执行
		$(document).ready(function(){
			$.ajax({
				url:"FindUserContro",
				type:"POST",
				dataType:"json",
				success:function(data){
					console.log(data);
				$("#stulist").html(""); //清除之前所生成的tr,不然再次查询会追加到原来的表格中
					for(var i=0; i<data.length; i++){
						$("#stulist").append(
							"<tr id='apptr"+i+"'></tr>"			
						);
						var lists = data[i];
					var str = JSON.stringify(lists);  //将返回的data值[object object]转化
						//alert(str);
						$.each(JSON.parse(str),function(index,domele){
							//alert(index);
							//index为属性名,domele为user的属性值
							$("#apptr"+i).append(
								"<td>"+domele+"</td>"	
							);
						});
						$("#apptr"+i).append(
							"<td><a href='edituser.html'>编辑</a></td>"
						);
					}			  
				},
				error:function(){
					alert("系统错误");
				}
			});
		});
		</script>
	</head>
	<body>
		<div id="selectstu">
			<p>查看学生信息</p>
		</div>
		<div id="addstu">
			<button type="button" style="font-size: 15px;" onclick="window.location.href ='adduser.html'">添加</button>
		</div>
		<table cellspacing="0" cellpadding="1" rules="all" bordercolor="gray" border="1" style="margin-top: 15px;">
			<tr style="FONT-WEIGHT: bold; FONT-SIZE: 12pt; HEIGHT: 25px; BACKGROUND-COLOR: #afd1f3">
				<td width="268.12">学号</td>
				<td width="217.59">姓名</td>
				<td width="181.82">密码</td>
				<td width="188.15">身份</td>
				<td width="107.32">编辑</td>
			</tr>
			<tr>
				<table id="stulist" border="1" cellspacing="0" cellpadding="1" rules="all" bordercolor="gray">
				</table>
			</tr>
		</table>
	</body>
</html>

     动态添加表格的方法是循环遍历data中的数据,对应添加到表格中输出。缺点是没法控制每个格的样式,除非所有格用一样的样式。还有一点,网上删除表格的方法到我这里都不适用,所以没有写动态删除的方法。

     提示:如果要利用json格式获取数据,一定要注意前后端字符串格式是否一致且正确,否则都会报错。

  • 1
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
要在Flask应用程序中使用AJAX技术动态更新表格,您需要完成以下步骤: 1. 创建一个Flask路由,该路由将提供用于获取表格数据的API端点。 2. 在HTML页面中使用jQuery AJAX方法来获取API端点返回的数据。 3. 使用jQuery将数据呈现为表格,并将其添加HTML页面中。 下面是一个简单的示例,展示如何在Flask应用程序中使用AJAX动态更新表格: 首先,创建一个Flask路由来提供用于获取表格数据的API端点。例如: ```python @app.route('/get_table_data') def get_table_data(): data = {'rows': [{'name': 'John', 'age': 30}, {'name': 'Mary', 'age': 25}]} return jsonify(data) ``` 然后,在HTML页面中添加一个表格和一个用于触发AJAX请求的按钮: ```html <table id="my-table"> <thead> <tr> <th>Name</th> <th>Age</th> </tr> </thead> <tbody> </tbody> </table> <button id="update-table-btn">Update Table</button> ``` 接下来,使用jQuery AJAX方法获取API端点返回的数据,并将其呈现为表格: ```javascript $(document).ready(function() { $('#update-table-btn').click(function() { $.ajax({ url: '/get_table_data', type: 'GET', dataType: 'json', success: function(data) { var rows = ''; $.each(data.rows, function(index, value) { rows += '<tr><td>' + value.name + '</td><td>' + value.age + '</td></tr>'; }); $('#my-table tbody').html(rows); } }); }); }); ``` 在上面的代码中,我们使用了jQuery的.each方法来迭代API端点返回的数据,并将其呈现为表格行。最后,我们使用jQuery的.html方法将表格添加表格中。 当用户单击“Update Table”按钮时,将触发AJAX请求,该请求将获取API端点返回的数据,并更新表格

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值