首页 > 编程语言 >入门PHP就来我这(高级)16 ~ 批量删除功能

入门PHP就来我这(高级)16 ~ 批量删除功能

时间:2024-07-08 15:58:50浏览次数:17  
标签:rows checked 入门 删除 16 current console PHP log

有胆量你就来跟着路老师卷起来! -- 纯干货,技术知识分享

路老师给大家分享PHP语言的知识了,旨在想让大家入门PHP,并深入了解PHP语言。

 


 本文给大家接着上篇文章进行图书删除功能的优化,实现批量删除图书的功能。

 1 添加删除按钮

<div class="panel-heading">
                    图书列表
    <button id="goAdd" style="margin-left: 30px;" class="btn btn-primary btn-sm">
    <i class="fa fa-disk-o"></i>
        新增
     </button>
     <button id="deleteBatch" style="margin-left: 10px;" class="btn btn-danger btn-sm">
      <i class="fa fa-disk-o"></i>
        删除
     </button>
</div>

显示页面如下:

2 表格前面的复选框

 效果如下:

 其中抽发选择的js逻辑如下:

let rows = new Array();

    document.getElementById('goAdd').addEventListener('click', function() {
            window.location.href = 'add.html'; // 将此处替换为你想要跳转的URL
    });
    document.getElementById('deleteBatch').addEventListener('click', function() {
        console.log("rows:"+rows.length)
        if(rows.length === 0) {
                alert("请选择您要删除的数据!");
                return false;
        }
        var msg = "确认要删除吗?\n\n请确认!";
        if(confirm(msg)===true) {
            console.log("js rows:"+rows)
            var queryString = rows.join(',');
            console.log("queryString:"+queryString)
            // PHP文件的URL
            var deleteBatch = 'deleteBatch.php';
            // 使用fetch API发送请求
            fetch(deleteBatch + '?rowIds=' + queryString,{method:'GET'})
                .then(response => response.text())
                .then(data => console.log(data))
                .catch(error => console.error('Error:', error));    

        } else {
            return false;
        }
        
    });

    $(document).ready(function() {
        $('#selectAll').click(function() {
            $('.selectRow').prop('checked', this.checked);

            var curr = $(this).is(':checked');
            console.log("kskskksk"+curr)
            $('.selectRow').each(function() {
                var currentId = $(this).attr('value');
                var current_checked =$(this).is(':checked');
                console.log(currentId)
                if(current_checked){
                    rows.push(currentId);
                }else{
                    rows.pop(currentId);
                }
                
            });
            
        });
        
        $('.selectRow').click(function() {
            console.log($(this).is(':checked'))
            var current_rowId = $(this).closest('tr').find('.selectRow').val();
            console.log("current_rowId:"+current_rowId);
            if($(this).is(':checked')){
                rows.push(current_rowId);
            } else{
                rows.pop(current_rowId);
            }
            
            if ($('.selectRow:checked').length === $('.selectRow').length) {
                $('#selectAll').prop('checked', true);
            } else {
                $('#selectAll').prop('checked', false);
            }
        });
    });

3 实现php的后端逻辑

<?php  
// 数据库连接参数  
$host = 'localhost';  
$username = 'root';  
$password = 'passwd';  
$dbname = 'db_test';  
  
// 创建连接  
$conn = new mysqli($host, $username, $password, $dbname);  
  
// 检查连接  
if ($conn->connect_error) {  
    die("连接失败: " . $conn->connect_error);  
}  
  
// 假设这是你想要删除的rowIds数组  
$rowIds = $_GET['rowIds'];
  
// 准备SQL语句  
$sql = "DELETE FROM books WHERE id IN ($rowIds)";  
  
// 执行SQL语句  
if ($conn->query($sql) === TRUE) {  
    echo "删除成功!";  
} else {  
    echo "错误: " . $sql . "<br>" . $conn->error;  
}  
  
// 关闭连接  
$conn->close();  
?>

4 删除演示

  • 随机选择两条数据:

  • 点击确定删除:

  •  删除后的结果:

下一篇 数据抽象层(这回是真的)  


 

大家如果喜欢技术,并想有个好的交流平台可以关注我的 我的知乎首页,会不定期分享本人觉得比较好的技术类电子书。
另外,自己创建的一个技术qq群,玩转技术群,该群里功能:分享技能,电子书,源代码,以及兼职项目等交流,欢迎大家加入一起交流。

标签:rows,checked,入门,删除,16,current,console,PHP,log
From: https://blog.csdn.net/weixin_38298363/article/details/140270354

相关文章

  • 白帽工具箱:DVWA中CSRF攻击与防御的入门指南
    ......
  • IIC驱动--TM1651
     /*********************************************************************************@fileGPIO_Toggle\main.c*@authorMCDApplicationTeam*@versionV2.0.1*@date18-November-2011*@briefThisfilecontainsthemainfuncti......
  • SPI驱动--TM1638
     /*********************************************************************************@fileGPIO_Toggle\main.c*@authorMCDApplicationTeam*@versionV2.0.1*@date18-November-2011*@briefThisfilecontainsthemainfuncti......
  • 数据分析入门指南Excel篇:各类Excel函数概览与详解(二)
    在当今数字化时代,数据已成为推动业务决策和创新的关键因素。而表格结构数据,作为最常见的数据存储形式之一,广泛应用于财务、物流、电商等多个领域。本文将基于提供的材料文本,深入探讨表格数据的处理与分析,特别是通过Excel等电子表格软件中的函数应用,实现数据的快速查询、统计......
  • php框架详解-symfony框架
    Symfony是一个流行的开源PHPWeb应用程序框架,它基于MVC(Model-View-Controller)架构设计,旨在加快Web应用程序的开发速度和维护性。以下是Symfony框架的一些详细特点和概念:1. 组件化结构Symfony框架的核心思想是组件化,它将功能分解为一系列独立、可重用的库。每个组件......
  • 数据结构第16节 最大堆
    最大堆是一种特殊的完全二叉树数据结构,其中每个父节点的键值都大于或等于其子节点的键值。在Java中,最大堆通常用于实现优先队列,堆排序算法,或者在需要快速访问最大元素的应用场景中。让我们通过一个具体的案例来说明最大堆的使用和实现:假设我们正在开发一个系统,用于实时分析......
  • Perl 语言入门学习
    Perl语言入门学习涉及多个方面,包括基础语法、变量、控制结构、函数、文件操作以及正则表达式等。以下是一个详细的Perl语言入门学习指南:一、Perl语言简介Perl是一种高级的、动态的、解释型的通用编程语言,由LarryWall于1987年开发。它具有简洁易读的语法,广泛用于文本处理、系......
  • Python中的面向对象编程:从入门到实践
    Python中的面向对象编程:从入门到实践一、引言面向对象编程(Object-OrientedProgramming,OOP)是Python语言中一个核心概念,它提供了一种处理程序复杂性的方法。通过OOP,我们可以使用对象和类的概念来模拟现实世界的实体和行为。本文将深入探讨Python中的面向对象编程,包括类与对......
  • java-spring boot光速入门教程(超详细!!)
    目录一、引言1.1初始化配置1.2整合第三方框架1.3后期维护1.4部署工程1.5敏捷式开发二、SpringBoot介绍springboot2.1搭建一个springboot工程2.2使用idea创建项目2.3在线创建姿势2.4项目的目录结构2.5项目的运行方式2.6yml文件格式2.7多环境配置2......
  • thinkphp6 使用Workerman测试
    1.首先通过composer安装 think-worker、think-viewcomposerrequiretopthink/think-workercomposerrequiretopthink/think-view安装成功后在项目的config目录会新增3个配置文件 2.修改woker.php中监听的端口return[//扩展自身需要的配置'host'......