十一、删除市场活动

news2024/10/5 17:28:46

功能需求

①用户在市场活动主页面,选择要删除的市场活动,点击"删除"按钮,弹出确认窗口;

②用户点击"确定"按钮,完成删除市场活动的功能.

③*每次至少删除一条市场活动

④*可以批量删除市场活动

⑤*删除成功之后,刷新市场活动列表,显示第一页数据,保持每页显示条数不变

⑥*删除失败,提示信息,列表不刷新

流程图

 代码实现

市场活动的全选和取消全选1

            //4.全选: 按钮添加单击事件
            $("#chckAll").click(function () {
                //判断 如果全选按钮选中,列表都选中checkbox
               // if(this.checked==true){
               //     $("#tBody input[type='checkbox']").prop("checked",true); //获取表格列表下的checkbox
               // }else{
               //     $("#tBody input[type='checkbox']").prop("checked",false); //获取表格列表下的checkbox
               // }
                $("#tBody input[type='checkbox']").prop("checked",this.checked);
            });

删除活动代码实现

一、ActivityMapper

1.ActivityMapper接口添加删除方法

    /**
     *根据id数组批量删除
     */
    int deleteActivityByIds(String[] id);

2.写ActivityMapper的映射文件

<foreach>标签进行循环遍历,然后进行字符串的拼接

  • collection代表遍历的类型,数组是array,集合是list
  • item 把每次遍历的结果存放这里
  • #{id} 把每一个id的值获取
    <!--int deleteActivityByIds(String ids);-->
    <delete id="deleteActivityByIds">
        delete
        from tbl_activity
        where id in 
        <foreach collection="array" item="id" separator="," open="(" close=")">
            #{id}
        </foreach>
    </delete>

二、ActivityService

	/**
	 * 根据id删除
	 */
	int deleteActivityByIds(String[] id);
	@Override
	public int deleteActivityByIds(String[] id) {
		return activityMapper.deleteActivityByIds(id);
	}

三、ActivityController

@RequestMapping("/workbench/activity/deleteActivityIds.do")
	public @ResponseBody
	Object deleteActivityIds(String[] id) {
		ReturnObject returnObject = new ReturnObject();
		try {
			// 调用service方法
			int ret = activityService.deleteActivityByIds(id);
			if (ret > 0) {
				returnObject.setCode(Contants.RETURN_OBJECT_CODE_SUCCESS);
			} else {
				returnObject.setCode(Contants.RETURN_OBJECT_CODE_FAIL);
				returnObject.setMessage("系统忙,请稍后再试...");
			}
		} catch (Exception e) {
			e.printStackTrace();
			returnObject.setCode(Contants.RETURN_OBJECT_CODE_FAIL);
			returnObject.setMessage("系统忙,请稍后再试...");
		}
		return returnObject;
	}

四、前端

发请求

处理响应

1.用户点击“删除按钮”,给删除按钮添加点击事件

 2.删除按钮绑定单击事件

$("#deleteBtn").click(function () {
....
}

2.1获取列表中选中的checkbox

 var checkedIds = $("#tBody input[type='checkbox']:checked");
                if (checkedIds.size() == 0) {
                    alert("请选择删除的事件");
                    return;
                }

2.2遍历checkbox 获取事件id的值

// this 就是每次遍历的值
// 把id=xxx&id=xxx...&id=xxx发送到后台
                //5.2获取id--遍历数组
                // this 就是每次遍历的值
                // 把id=xxx&id=xxx...&id=xxx发送到后台
                var ids="";
                $.each(checkedIds,function () {
                    ids+="id="+this.value+"&";
                });
                // 删除结尾的&
                ids=ids.substr(0,ids.length-1);

2.3后台发送请求

ajax向后台发送请求data参数的格式

①一个参数名对应一个参数值

data:{

K:V

}

②一个参数名对应多个参数值

data:k1=v1&k2=v2&k3=v3...

K都是id ,后台用数组id接收

③提交字符串数据和二进制数据

data:FormData对象

  $.ajax({
                   url:'workbench/activity/deleteActivityIds.do',
                    data:ids,
                    type:'post',
                    //响应
                    dataType:'json',
                    success:function (data) {
                       if (data.code=='1'){
                           //删除成功
                           //刷新
                           queryActivityByConditionForPage(1,10);
                       }else {
                           alert(data.message);
                       }
                    }
                });

2.4提示信息:是否删除

 if (window.confirm("确定删除吗?")) {
...
}

完整的js

         //5.删除: 删除按钮
            $("#deleteBtn").click(function () {
                // 收集参数
                // 5.1获取列表中选中的checkbox
                var checkedIds = $("#tBody input[type='checkbox']:checked");
                if (checkedIds.size() == 0) {
                    alert("请选择删除的事件");
                    return;
                }

                if (window.confirm("确定删除吗?")) {
                    //5.2获取id--遍历数组
                    // this 就是每次遍历的值
                    // 把id=xxx&id=xxx...&id=xxx发送到后台
                    var ids = "";
                    $.each(checkedIds, function () {
                        ids += "id=" + this.value + "&";
                    });
                    // 取出&
                    ids = ids.substr(0, ids.length - 1);

                    //5.3发送请求
                    $.ajax({
                        url: 'workbench/activity/deleteActivityIds.do',
                        data: ids,
                        type: 'post',
                        //响应
                        dataType: 'json',
                        success: function (data) {
                            if (data.code == '1') {
                                //删除成功
                                //刷新
                                queryActivityByConditionForPage(1, 10);
                            } else {
                                alert(data.message);
                            }
                        }
                    });
                }

            });

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/413328.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

如何规划自己的大一生活

大家好&#xff0c;我是帅地&#xff0c;在帅地的训练营里&#xff0c;有不少大一打二大学员&#xff0c;不少学员在大一就会数据结构&#xff0c;算法等学了&#xff0c;还参加了一些实验室项目&#xff0c;这主要得益于他们规划等早。 帅地在接下来的时间里&#xff0c;会写…

心累,网站被盗刷 1.7T 流量

小伙伴们大家好&#xff0c;我是阿秀。前几天我在上班摸鱼的时候忽然收到阿里云发来的邮件说账户欠费&#xff0c;服务停止同时也有人在群里说网站图片看不到了。我当时第一反应就是 OSS 套餐超了&#xff0c;因为以前也收到过类似的邮件&#xff0c;我去年双十一的时候买了一个…

JUC高级八-Java对象内存布局和对象头

JUC高级八-Java对象内存布局和对象头 1. 对象的内存布局 在HotSpot虚拟机里&#xff0c;对象在堆内存中的存储布局可以划分为三个部分:对象头(Header&#xff09;、实例数据&#xff08;Instance Data&#xff09;和对齐填充(Padding)&#xff08;保证8个字节的倍数&#xff…

【java】泛型编程

文章目录泛型类泛型与多态泛型方法泛型界限设置上界设置下界类型擦除函数式接口Supplier供给型函数式接口Consumer消费型函数式接口Function函数型函数式接口Predicate断言型函数式接口判空包装泛型类 package com.test.entity; public class Score<T> {String name;Str…

一文搞懂Session和JWT登录认证

前言 目前在开发的小组结课项目中用到了JWT认证&#xff0c;简单分享一下&#xff0c;并看看与Session认证的异同。 登录认证&#xff08;Authentication&#xff09;的概念非常简单&#xff0c;就是通过一定手段对用户的身份进行确认。 我们都知道 HTTP 是无状态的&#xf…

模型实战(9)之YOLOv8预测模块predictor详解、预测视频后同时保存结果视频+目标帧

YOLOv8预测模块predictor详解、预测视频后同时保存结果视频+目标帧 Ultralytics YOLOv8Ultralytics YOLOv8是最新版本的YOLO对象检测和图像分割模型。 作为一种尖端的、最先进的(SOTA)模型,YOLOv8建立在以前版本的成功基础上,引入了新的功能和改进,以增强性能、灵活性和效率…

高速Serdes技术(FPGA领域应用)

目录引入一、Serdes&#xff08;概念-历程&#xff09;1、概念2、技术现状3、发展历程二、Serdes结构三、在FPGA领域中的运用四、Serdes跟Lvds的关系五、Xilinx 有关 serdes的文档六、参考文献引入 回顾接口技术发展历史&#xff0c;其实数据的传输最开始是低速的串行接口&…

202307读书笔记|《双向奔赴的爱,才是人间理想》——爱是双向奔赴,共同成长

《双向奔赴的爱&#xff0c;才是人间理想》作者燕七&#xff0c;读作者的第一本书是《鲸鱼安慰&#x1f433;了大海》可太美了&#xff0c;这次订阅通知这本&#xff0c;立马加入了书架&#xff0c;跑完步读了起来。没有第一本惊艳&#xff0c;但也不错&#xff0c;值得一读&am…

JavaScript对象的属性描述符(Property Descriptor)介绍

JavaScript对象的属性描述符&#xff08;Property Descriptor&#xff09;介绍 JavaScript 中的对象&#xff08;Object&#xff09;是一个包含相关数据和方法的集合&#xff0c;通常由一些变量和函数组成&#xff0c;我们称之为对象里面的属性&#xff08;property&#xff0…

java springboot工程RESTful入门案例 认识请求类型 参数

我们先创建一个java的springboot工程 然后 我们先用老方式试一下 在启动类的同级创建目录controller 下面创建一个类 叫 UserController 参考代码如下 package com.example.threshold.controller;import org.springframework.web.bind.annotation.GetMapping; import org.spri…

负载均衡与DNS轮询

负载均衡 load balance 负载均衡&#xff08;Load Balancing&#xff09;是一种将工作负载&#xff08;Workload&#xff09;分摊到多个计算资源&#xff08;服务器、存储设备、网络设备等&#xff09;上的技术&#xff0c;目的是提高系统的可用性、性能和扩展性。负载均衡可以…

序列化和反序列化二叉树 -----前序,中序,后序,层序

目录 一.序列化和反序列化 1.什么是序列化和反序列化 二.前序遍历 1.序列化 1.问题分析 2.代码实现 2.反序列化 1.问题分析 2.代码实现 三.后序遍历 1.序列化 1.思路分析 2.代码实现 2.反序列化 1.思路分析 2.代码实现 四.中序遍历 1.序列化 1.思路分析 2.代…

SpringBoot 使用Prometheus采集自定义指标数据

一、我们需要什么指标 对于DDD、TDD等&#xff0c;大家比较熟悉了&#xff0c;但是对于MDD可能就比较陌生了。MDD是Metrics-Driven Development的缩写&#xff0c;主张开发过程由指标驱动&#xff0c;通过实用指标来驱动快速、精确和细粒度的软件迭代。MDD可使所有可以测量的东…

RPC调用框架简单介绍

一.Thrift Apache Doris目前使用的RPC调度框架。Thrift是一款基于CS&#xff08;client -server&#xff09;架构的RPC通信框架&#xff0c;开发人员可以根据定义Thrift的IDL(interface decription language)文件来定义数据结构和服务接口&#xff0c;灵活性高&#xff0c;支持…

Leetcode.2583 二叉树中的第 K 大层和

题目链接 Leetcode.2583 二叉树中的第 K 大层和 Rating &#xff1a; 1374 题目描述 给你一棵二叉树的根节点 root和一个正整数 k 。 树中的 层和 是指 同一层 上节点值的总和。 返回树中第 k 大的层和&#xff08;不一定不同&#xff09;。如果树少于 k 层&#xff0c;则返…

INFINONE XC164单片机逆向记录(5)C166地址系统

本人所写的博客都为开发之中遇到问题记录的随笔,主要是给自己积累些问题。免日后无印象,如有不当之处敬请指正(欢迎进扣群 24849632 探讨问题); 写在专栏前面https://blog.csdn.net/Junping1982/article/details/129955766 INFINONE XC164单片机逆向记录(1)资料准备

Python爬虫知识回顾

之前一直沉溺于java&#xff0c;jsp&#xff0c;ssh&#xff0c;db等爬虫&#xff0c;现在又要开始走python的老路了。常用的requests库&#xff0c;通过requests对象的get方法&#xff0c;获取一个response对象。jsp的东西。 其中timeout,proxies,headers,cookies,verify,是我…

webgl-画指定颜色三角形

html <!DOCTYPE html> <head> <style> *{ margin: 0px; padding: 0px; } </style> </head> <body> <canvas id webgl> 您的浏览器不支持HTML5,请更换浏览器 </canvas> <script src"./main.js"></script&g…

JUC之CountDownLatch与CyclicBarrier

1.前言 在java.util.concurrent包中为我们提供了很多的线程同步工具类&#xff0c;例如CountDownLatch与CyclicBarrier&#xff0c;那么它们主要的用途是什么呢&#xff1f;且看后续分析。 2.CountDownLatch 2.1 什么是CountDownLatch CountDownLatch&#xff0c;顾名思义&…

从ReentrantLock角度解析AQS

一、概述 闲来不卷&#xff0c;随便聊一点。 一般情况下&#xff0c;大家系统中至少也是JDK8了&#xff0c;那想必对于JDK5加入的一系列功能并不陌生吧。那时候重点加入了java.util.concurrent并发包&#xff0c;我们简称为JUC。JUC下提供了很多并发编程实用的工具类&#xf…