基于springboot和ajax的简单项目 06 日志界面的delete功能(根据选择的checkbox)

这篇具有很好参考价值的文章主要介绍了基于springboot和ajax的简单项目 06 日志界面的delete功能(根据选择的checkbox)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

01.这次后台开始;
顺序依次是dao->xml->service->serviceimpl->controller->html

02.dao接口

public int doDeleteObjects(@Param("ids") Integer... ids);

03.xml文件

<update id="doDeleteObjects" >
        delete from sys_logs
        <choose>
        <when test="ids.length>0 and ids!=null">
            <where>
                    <foreach collection="ids"  separator="or" item="id">
                        id=#{id}
                    </foreach>
            </where>
        </when>
        <otherwise>
            where 1==2
        </otherwise>
        </choose>

    </update>

04.service接口

 public  int doDeleteObjects(@Param("ids")Integer... ids) ;

05.serviceimpl实现类

 @Override
    public int doDeleteObjects(Integer... ids) {
        if (ids.length==0||ids==null)
        {
        throw  new IllegalArgumentException("请选择一个");
        }
        int rows=0;
        try {
            rows=sysLogdao.doDeleteObjects(ids);
        }catch (Throwable e)
        {
            e.printStackTrace();
            throw new serivceException("系统在修复中");
        }
        if (rows==0)
        {
            throw new serivceException("数据不存在");
        }
        return rows;
    }

06.controller类

 @RequestMapping("doDeleteObjects")
    @ResponseBody
    public JsonResult doDeleteObjects(Integer...ids){
        int rows= syslogservice.doDeleteObjects(ids);
        return new JsonResult("OK");
    }

07.html文件

先在自动加载的函数中声明点击事件(delete功能)

$(".input-group-btn").on("click",".btn-delete",doDeleteObjects)

再去声明delete函数,使用的ajax的post方法。
其中的params是string类型的参数。





   function doDeleteObjects() {
	   var url="log/doDeleteObjects";
	   var ids=doGetCheckedIds();
	   if(ids.length==0){
		   alert("至少选择一个");
		   return;
	   }
	   var params={"ids":ids.toString()};
	   $.post(url,params,function (result) {
		   //请问result是一个字符串还是json格式的js对象?对象
		   if(result.state==1){
			   alert(result.message);
			   doGetObjects();
		   }else{
			   alert(result.message);
		   }
	   })

   }
   
   function doGetCheckedIds() {
	   //定义一个数组,用于存储选中的checkbox的id值
	   var array=[];//new Array();
	   //获取tbody中所有类型为checkbox的input元素
	   $("#tbodyId input[type=checkbox]").
			   //迭代这些元素,每发现一个元素都会执行如下回调函数
			   each(function(){
				   //假如此元素的checked属性的值为true
				   if($(this).prop("checked")){
					   /调用数组对象的push方法将选中对象的值存储到数组
					   array.push($(this).val());
				   }
			   });
	   return array;

   }

用到的html中的方法:

使用的each方法遍历,$(this)表示当前元素
基于springboot和ajax的简单项目 06 日志界面的delete功能(根据选择的checkbox)


使用prop获取当前的属性:checked是一个表单标签input中的属性,就叫做checked。

涉及到的html标签

<td><input type='checkbox' class='cBox' name='cItem' value='"+data.id+"'></td>

基于springboot和ajax的简单项目 06 日志界面的delete功能(根据选择的checkbox)
基于springboot和ajax的简单项目 06 日志界面的delete功能(根据选择的checkbox)
这个是单个选中后的功能

那全选的delete功能是如何实现的?

08.首先就是实现全选后所有的在那一页出现的checkbox都可以被选中。

先给全选按钮增加点击事件。由于是表单,而且需要的是01.全选后02.在按下delete按钮后才可以delete
这里使用的是change函数,不是click函数

(一般button用click点击事件,表单的input【type=checkbox】使用的是change事件)

$("#checkAll").change(doChangeTBodyCheckBoxState)

基于springboot和ajax的简单项目 06 日志界面的delete功能(根据选择的checkbox)

#checkAll是id属性是checkAll的一个input【type=checkbox】的标签,表示全选

通过prop来获取checked属性的值,而后把table中的input【type=checkbox】的标签的checked属性的值都改成真

jQuery中的prop函数的取值和赋值两种用法。

//修改tbody中checkbox对象状态
function doChangeTBodyCheckBoxState() {
   //1.获取当前点击对象的checked属性的值
   var theadCheckBoxState = $(this).prop("checked");
   //2.将tbody中所有checkbox元素的值都修改为checkall对应的值。
   $("#tbodyId input[type=checkbox]").prop("checked",theadCheckBoxState);

} 

那么,如果table中显示的某一行数据取消的选择,那么全选按钮应该不被勾选才对。
同样在table(id=tbodyId)的input【type=checkbox】有一个change事件
在自动加载函数中使用:

 $("#tbodyId").on("change",".cBox",doChangeTHeadCheckBoxState);
});
//修改thead中的checkbox对象的状态
function doChangeTHeadCheckBoxState() {
   //1.定义变量表示,默认值为true
   var flag=true;
   //2.获取所有的tbody中的checkbox对象的值,进行逻辑与操作
   $("#tbodyId input[type='checkbox']").each(function () {
      flag=flag&&$(this).prop("checked"); //true&&true/false
   })
   //3.修改thread中的checkbox对象状态
   $("#checkAll").prop("checked",flag);
}

更新页面后,全选按钮不选中:
这个功能要在更新table数据的函数中去添加:

$("#checkAll").prop("checked",false);

	function doGetObjects() {
		$("#checkAll").prop("checked",false);
        //发送json请求,接受数据
		//1.定义url和参数
		var pageCurrent=$("#pageId").data("pageCurrent");
		//为什么要执行如下语句的判定,然后初始化pageCurrent的值为1
		//pageCurrent参数在没有赋值的情况下,默认初始值应该为1.
		if(!pageCurrent) pageCurrent=1;
		var params={"pageCurrent":pageCurrent};//pageCurrent=2
		var username=$("#searchNameId").val();
		if(username) params.username=username;//查询时需要
		var url="log/doFindPageObjects";
		//2.发起异步请求,getjson方法
		$.getJSON(url,params,function (result) {
			//请问result是一个字符串还是json格式的js对象?对象
		console.log(result);
		dohandlerresult(result);
		})

	}

09.调试bug,如果在最后一页使用全选delete功能的时候,pageCurrent的值不能像往常一样,从后+1更新table中的数据,而是需要-1,向前去更新数据。

  function doRefreshAfterDeleteOK(){
	   var pageall=$("#pageId").data("pageall");
	   var pageCurrent=$("#pageId").data("pageCurrent");
	   var checked=$("#checkAll").prop("checked");
	   if(pageCurrent==pageall&&checked&&pageCurrent>1){
		   pageCurrent--;
		   $("#pageId").data("pageCurrent",pageCurrent);
	   }
	   doGetObjects();
   }

这里的data接受的数据是在page.html那个分页功能是已经存好了。

这里需要更新delete函数:文章来源地址https://www.toymoban.com/news/detail-417773.html

function doDeleteObjects() {
   var ids=doGetCheckedId();
   if (ids.length==0){
      alert("至少选一个");
      return;
   }
   if(!confirm("确认删除吗?"))return;
   var url="log/doDeleteObjects";
   var params={"ids":ids.toString()};
   console.log(params);
   $.post(url,params,function (result) {
      if(result.state==1){
         alert(result.message);
         //doGetObjects();
                  doRefreshAfterDeleteOK();
      }else {
         alert(result.message);
         
      }
   });

}

到了这里,关于基于springboot和ajax的简单项目 06 日志界面的delete功能(根据选择的checkbox)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Springboot简单功能示例-6 使用加密数据源并配置日志

    介绍 springboot简单示例 跳转到发行版 查看发行版说明 软件架构(当前发行版使用) springboot hutool-all 非常好的常用java工具库 官网 maven bcprov-jdk18on 一些加密算法的实现 官网 maven h2 纯java的数据库,支持内存、文件、网络数据库 官网 maven 安装教程   功能说明 配置logback 配置了

    2024年02月08日
    浏览(40)
  • springboot 项目日志配置文件详解

    在Spring Boot项目中,可以通过在 application.properties 或 application.yml 文件中指定日志配置文件来配置日志。 1. 使用 application.properties 文件: 在 application.properties 中,您可以使用以下属性来指定日志配置文件: 上述配置将告诉Spring Boot使用位于类路径下的 custom-logback.xml 文件作为

    2024年02月12日
    浏览(51)
  • SpringBoot项目之前后端界面搭建

    目录 1.项目搭建 1.1.项目前准备 1.2导入pom依赖 1.3.转换yml文件 1.4.测试 2.首页功能 2.1.代码生成  2.2.前台界面的编写 3.用户文明登陆 3.1.实现登陆界面跳转  3.2.登陆验证 3.3.盐加密 4.服务端和客户端登陆密码管理 技术点介绍: 前端:Freemarker、jQuery 后端:SpringBoot、MyBatisPlus、

    2023年04月08日
    浏览(30)
  • springboot项目中添加自定义日志

    或 application.yml文件中的配置 对上述的配置进行说明:

    2024年02月17日
    浏览(44)
  • SpringBoot(项目创建使用+配置文件+日志文件)

    目录 1. Spring Boot 项目创建 2. 写一个 Hello World 并运行 3. 配置文件的作用及格式 4. properties 配置文件的基本语法  5. 读取配置文件 6. yml 配置文件说明 7. properties 和 yml 的区别 8. SpringBoot 日志文件 8.1 日志的作用 8.2 自定义日志打印 8.3 日志的级别 8.4 日志持久化 8.5 更简单的实现

    2024年01月22日
    浏览(56)
  • Springboot项目怎么设计业务操作日志功能?

      很久以前都想写这篇文章,一直没有空,但直到现在我对当时的情景还有印象,之所以有印象是因为需求很简单,业务操作日志的记录与查询的功能,但是具体实现真的很烂,具体的烂法会在反面示例里细说,领导以及客户层面很认可,一系列迷之操作,让我印象深刻。

    2023年04月16日
    浏览(71)
  • SpringBoot项目如何优雅的实现操作日志记录

    在实际开发当中,对于某些关键业务,我们通常需要记录该操作的内容,一个操作调一次记录方法,每次还得去收集参数等等,会造成大量代码重复。 我们希望代码中只有业务相关的操作,在项目中使用注解来完成此项功能。 通常就是使用Spring中的AOP特性来实现的,那么在

    2024年01月18日
    浏览(45)
  • springboot 项目启动不打印spring 启动日志

    今天项目遇到一个很奇怪的问题,服务在启动时,不打印spring 的启动日志。经过排查发现是因为其他的依赖引入了 log4j 的依赖,因为我们的项目用的是logback,所以项目中没有log4j 的相关配置,所以干扰到了日志的打印 下面是log4j缺失配置文件的告警日志: log4j:WARN No append

    2024年02月11日
    浏览(58)
  • 实战:ELK环境部署并采集springboot项目日志

    相信作为一个资深的搬砖人,在处理问题的时候免不了查看应用系统日志,且可以根据这个日志日志精准、快速的解决实际的问题。一般情况下我们的系统日志都放置在包的运行目录下面,非常不便于查看和分类。那么。今天我们就引入ELK的日志处理架构来解决它。 ELK组成及

    2024年02月17日
    浏览(40)
  • 基于Java(SpringBoot框架)毕业设计作品成品(06)在线订餐外卖点餐系统设计与实现

    博主介绍 :《Vue.js入门与商城开发实战》《微信小程序商城开发》图书作者,CSDN博客专家,在线教育专家,CSDN钻石讲师;专注大学生毕业设计教育和辅导。 所有项目都配有从入门到精通的基础知识视频课程,免费 项目配有对应开发文档、开题报告、任务书、PPT、论文模版

    2024年02月06日
    浏览(40)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包