Ajax实现动态显示并操作表信息的方法

在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实现动态显示并操作表信息的方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持我们。

(0)

相关推荐

  • JQuery Ajax动态加载Table数据的实例讲解

    我们在jsp定义一个select和一个table,要求实现根据select的选值,动态加载table数据. <select id="type" name="type" onchange="reloadTable(this)"></select> <table id="import-table" class="table table-striped table-bordered table

  • Ajax实现动态加载数据

    前言: 1.这个随笔实现了一个Ajax动态加载的例子. 2.使用.net 的MVC框架实现. 3.这个例子重点在前后台交互,其它略写. 开始: 1.控制器ActionResult代码(用于显示页面) /// <summary> /// 电话查询页面 /// </summary> /// <returns></returns> public ActionResult PhoneSearch(string sql) { phoneList=从数据库查询数据: V

  • Ajax获取数据然后显示在页面的实现方法

    主要功能流程介绍 循环获取列表数据 点击列表数据进入详情页 点击报名参加弹出报名成功提示框 点击提示框中的确定按钮,跳回列表页 代码实现流程和解说 一.列表页 1.访问链接list.php时判断是pc端还是客户端 $user_agent_arr = mall_get_user_agent_arr(); if(MALL_UA_IS_PC == 1) { //****************** pc版 ****************** include_once './list-pc.php';

  • Ajax实现动态显示并操作表信息的方法

    在jsp连接数据库访问并显示数据库信息时,使用Ajax利用json对象会在页面不刷新的情况下获取到数据.但若是要显示数据库表中的信息,就需要动态的生成表的行以及单元格.并且对每一行的操作也是需要动态绑定的. 今天分享给各位的是完成在对数据库表信息的显示.增加.删除.修改.显示时通过用HTML代码来控制table行的增加.修改和删除是通过button的onclick()事件完成的.onclick()的参数也是动态改变的,这样的话在操作时就可以知道是要对哪一行进行操作了.修改的方法中又用到修改HTM

  • laravel Validator ajax返回错误信息的方法

    将return back()->withErrors($validator->errors())->withInput();替换为下面的代码 $validator = \Validator::make($request->input(), $rules, $messages); if ($validator->fails()) { //将返回错误循环组装成字符串 $arr = []; foreach ($validator->getMessageBag()->to

  • js 使用ajax设置和获取自定义header信息的方法小结

    本文实例讲述了js 使用ajax设置和获取自定义header信息的方法.分享给大家供大家参考,具体如下: 1.js ajax 设置自定义header 1.1 方法一: $.ajax({ type: "POST", url: "Handler1.ashx", contentType: "application/x-www-form-urlencoded", beforeSend: function (request) { request.setRe

  • Yii2基于Ajax自动获取表单数据的方法

    本文实例讲述了Yii2基于Ajax自动获取表单数据的方法.分享给大家供大家参考,具体如下: 这里有两张表,表结构如下,locations表存放的省份和邮编等信息,两张表的model和curd均使用gii生成 yii2advanced.customers表 customer_id:int(11) customer_name:varchar(100) zip_code:varchar(20) city:varchar(100) province:varchar(100) yii2advanced.l

  • php采用ajax数据提交post与post常见方法总结

    本文实例讲述了php采用ajax数据提交post与post常见方法.分享给大家供大家参考.具体方法如下: 在很多情况下我们使用ajax是不会有什么问题的,但有时会碰到ajax数据提交post不完整的问题,这里举例给大家分析一下. 下边是一个标准的ajax请求代码,正常情况下是不会有任何问题的,但是,在特定情况下就会出现问题,比如,username=fdas&321的时候,或者参数值中出现了&符号,经过了N多遍测试,发现数据都传输了,但是打印出来数据是半截,最后仔细观察头信息发现传输的头不对

  • jQuery的 $.ajax防止重复提交的两种方法(推荐)

    下面给大家带来两种关于jquery 的ajax防止重复提交的解决方法,具体介绍如下所示: 1.第一种,对于onclick事件触发的的ajax 可以采用如下方法: 即在beforeSend中使点击按钮不可用,ajax结果返回后置为可用 $.ajax( { type: 'POST', url: APP+'?m=Shopping&a=ajaxSubmitorder&sid='+sid+'&src='+src, cache:false, dataType: 'json', data: {'

  • jQuery在header中设置请求信息的方法

    jquery是js的类库,js本身不能操作header,因为js是在浏览器加载页面过程中才开始执行的header需要服务器端执行操作 如果是ajax,是可以设置header $.ajax({ url: "", data: {}, type: "GET", beforeSend: function(xhr){xhr.setRequestHeader('X-Test-Header', 'test-value');},//这里设置header success: funct

  • ajax+jQuery实现级联显示地址的方法

    本文实例讲述了ajax+jQuery实现级联显示地址的方法.分享给大家供大家参考.具体实现方法如下: <%@ page language="java" import="java.util.*" pageEncoding="utf-8" contentType="text/html; charset=utf-8" %> <html> <head> <title>初始化HELLO&l

  • jQuery+ajax实现局部刷新的两种方法

    在项目中,经常会用到ajax,比如实现局部刷新,比如需要前后端交互等,这里呢分享局部刷新的两种方法,主要用的是ajax里面的.load(). 第一种: 当某几个页面都有相同的头部.导航.底部的时候,点击导航链接可以在几个页面中切换,此时想要的效果是点击链接后只切换内容部分,其他不再重新加载.上代码. jq-load.html: <!DOCTYPE html> <html> <head> <title>ajax局部刷新</title> </h

  • gson ajax 数字精度丢失问题的解决方法

    ajax传输的json,gson会发生丢失,long > 15的时候会丢失0 解决方案:直接把属性为long的属性自动加上双引号成为js的字符串,这样就不会发生丢失了,ajax自动识别为字符串. 用法: ajaxResult("",0,new Object()); //随便一个对象就可以,List 之类的 /** * 以Ajax方式输出常规操作结果 * * @param status * 返回状态,200表示成功, 500表示错误 * @param message * 操作结果描

随机推荐