视频1 视频21 视频41 视频61 视频文章1 视频文章21 视频文章41 视频文章61 推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37 推荐39 推荐41 推荐43 推荐45 推荐47 推荐49 关键词1 关键词101 关键词201 关键词301 关键词401 关键词501 关键词601 关键词701 关键词801 关键词901 关键词1001 关键词1101 关键词1201 关键词1301 关键词1401 关键词1501 关键词1601 关键词1701 关键词1801 关键词1901 视频扩展1 视频扩展6 视频扩展11 视频扩展16 文章1 文章201 文章401 文章601 文章801 文章1001 资讯1 资讯501 资讯1001 资讯1501 标签1 标签501 标签1001 关键词1 关键词501 关键词1001 关键词1501 专题2001
Ajax实现动态显示并操作表信息的方法
2020-11-27 22:51:24 责编:小采
文档


在jsp连接数据库访问并显示数据库信息时,使用Ajax利用json对象会在页面不刷新的情况下获取到数据。但若是要显示数据库表中的信息,就需要动态的生成表的行以及单元格。并且对每一行的操作也是需要动态绑定的。

今天分享给各位的是完成在对数据库表信息的显示、增加、删除、修改。显示时通过用HTML代码来控制table行的增加。修改和删除是通过button的onclick()事件完成的。onclick()的参数也是动态改变的,这样的话在操作时就可以知道是要对哪一行进行操作了。修改的方法中又用到修改HTML代码使普通<td>变为<input>并获取到原始值作为输入框的默认值,在输入框失去焦点后自动保存数据。并再把<input>变为<td>

代码很详细,希望能对你有所帮助。

js文件内容如下:

$(function () {
 $.ajaxSetup({
 async:false
 });
 var url = "/Task/Fenlei"; //servlet的url
 data = {};
 data.flag = "all";
 $.post(url,data,function (result) {
 for(var i=0;i<result.getAll.length;i++){
 var id = result.getAll[i].fenlei_Id;
 var name = result.getAll[i].fenlei_Name;
 var newrow = "<tr id='tr"+id+"'><td>"+result.getAll[i].fenlei_Id+"</td><td id='td"+id+"'>"+result.getAll[i].fenlei_Name+
 "</td><td><button onclick='del("+id+")''>删除</button><button onclick='edit("+id+")'>修改</button></td></tr>"
 $("#AllInfo tr:last").after(newrow);
 }
 },"json");
 $("#add").click(function () {
 addData={};
 var name = $("#name").val();
 addData.name = name;
 addData.flag = "add";
 $.post(url,addData,function (result) {
 var id = result.aFenlei.fenlei_Id;
 var name = result.aFenlei.fenlei_Name;
 var newrow = "<tr id='tr"+id+"'><td>"+result.aFenlei.fenlei_Id+"</td><td id='td"+id+"'>"+result.aFenlei.fenlei_Name+
 "</td><td><button onclick='del("+id+")'>删除</button><button onclick='edit("+id+")'>修改</button></td></tr>"
 $("#AllInfo tr:last").after(newrow);
 
 
 },"json");
 });
});
function del(id) {
 console.log(id);
 var url = "/Task/Fenlei";
 delData = {};
 delData.flag = "delete";
 delData.id = id;
 $.post(url,delData,function (result) {
 if(result) {
 alert("删除成功");
 $("#tr"+id).remove();
 } else {
 alert("删除失败");
 }
 },"json");
};
function edit(id) {
 var url = "/Task/Fenlei";
 editData = {};
 editData.flag = "update";
 var oldname = $("#td"+id).text();
 $("#td"+id).html("<input type='text'class='Input' id='new' name='FenleiName' value='"+oldname+"'/>");
 $("#new").blur(function () {
 var newname = $(".Input").val();
 editData.newname = newname;
 console.log(newname);
 $("#td"+id).html("<td id='td"+id+"'>"+newname+"</td>");
 $.post(url,editData,function(result){
 if(result) {
 alert("修改成功");
 } else {
 alert("修改失败");
 }
 },"json");
 });
}

jsp页面代码如下:

<%@include file="../inc/top.jsp"%>
<script src="Fenlei.js"></script>
<div class="Classify">
 <h3 align="center">项目管理信息表</h3>
 <div class="divBack">
 <img src="#" />
 </div>
 <div class="divAdd">
 分类名称:<input type="text" id="name"/>
 <button type="button" class="btn-primary" id="add">添加</button>
 </div>
 <table class="table"id="AllInfo">
 <tr>
 <th>分类Id</th>
 <th>分类名称</th>
 <th>操作</th>
 </tr>
 </table>
</div>
<%@include file="../inc/bottom.jsp"%>

处理的servlet内容如下:

public class FenleiServlet extends HttpServlet {
 protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
 doGet(request,response);
 }
 protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
 request.setCharacterEncoding("utf-8");
 response.setCharacterEncoding("utf-8");
 String name = request.getParameter("name"); //项目分类名称
 String flag = request.getParameter("flag");
 String id = request.getParameter("id"); //项目分类Id
 FenleiService cs = new FenleiService();
 JSONObject json = new JSONObject();
 if("all".equals(flag)) {
 List<FenleiBean> list = cs.getAll(); //获取所有的项目分类信息
 json.put("getAll",list);
 response.getWriter().print(json.toJSONString());
 }
 if("add".equals(flag)) { //增加操作。
 FenleiBean cb = cs.add(name);
 json.put("aFenlei",cb);
 response.getWriter().print(json.toJSONString());
 }
 if("delete".equals(flag)) { //删除操作
 boolean result = cs.delete(id);
 System.out.println(flag);
 System.out.println(result);
 if(result){
 json.put("result",result);
 json.put("msg","删除成功");
 response.getWriter().print(json.toJSONString());
 System.out.println(json.toJSONString());
 } else {
 json.put("result",result);
 json.put("msg","删除失败");
 response.getWriter().print(json.toJSONString());
 }
 }
 if("update".equals(flag)) { //更新信息
 System.out.println(flag);
 String newname = request.getParameter("newname");
 System.out.println("---------------update newname"+newname);
 boolean result = cs.update(newname);
 if(result){
 json.put("result",result);
 json.put("msg","修改成功");
 response.getWriter().print(json.toJSONString());
 System.out.println(json.toJSONString());
 } else {
 json.put("result",result);
 json.put("msg","修改失败");
 response.getWriter().print(json.toJSONString());
 }
 }
 }
}
</pre><pre name="code" class="javascript">

以上这篇Ajax实现动态显示并操作表信息的方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持脚本之家。

下载本文
显示全文
专题