17 PHP 实现批量删除功能

本文涉及的产品
Redis 开源版,标准版 2GB
推荐场景:
搭建游戏排行榜
云数据库 Tair(兼容Redis),内存型 2GB
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
简介: 路老师在本文中继续优化图书删除功能,实现批量删除图书。通过添加删除按钮、表格前的复选框以及实现PHP后端逻辑,展示了完整的删除流程和效果。

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

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

image.gif 编辑


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

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>

image.gif

显示页面如下:

image.gif 编辑

2 表格前面的复选框

image.gif 编辑 效果如下:

image.gif 编辑

其中抽发选择的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);
            }
        });
    });

image.gif

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();  
?>

image.gif

4 删除演示

  • 随机选择两条数据:

image.gif 编辑

  • 点击确定删除:

image.gif 编辑

  • 删除后的结果:

image.gif 编辑

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

相关文章
|
19天前
|
JavaScript PHP UED
16 PHP实现图书删除功能
路老师在知乎上分享了PHP语言的知识,帮助大家入门和深入了解PHP。本文介绍了如何实现图书删除功能,通过点击删除按钮触发`deleteBook.php`文件,完成删除操作并返回列表页。同时,还新增了一个“新增”按钮,优化了用户体验。
24 2
16 PHP实现图书删除功能
|
19天前
|
数据库连接 PHP
15 PHP实现图书修改功能
路老师分享了如何使用PHP实现图书信息的修改功能。首先,在列表页面点击编辑按钮,跳转至`editBook.php`,通过ID获取图书信息并展示在`edit.html`页面。用户提交修改后,`updateBook.php`处理更新请求,成功后返回到图书列表页。纯干货,技术知识满满。
25 2
|
19天前
|
PHP
14 PHP实现图书添加功能
路老师分享PHP语言知识,帮助大家入门并深入了解PHP。本文介绍如何实现图书添加功能,包括创建HTML表单和PHP后端处理逻辑,最后展示实际效果。
23 2
|
3月前
|
设计模式 算法 PHP
PHP中的设计模式:策略模式的深入探索与实践在软件开发的广袤天地中,PHP以其独特的魅力和强大的功能,成为无数开发者手中的得力工具。而在这条充满挑战与机遇的征途上,设计模式犹如一盏明灯,指引着我们穿越代码的迷雾,编写出更加高效、灵活且易于维护的程序。今天,就让我们聚焦于设计模式中的璀璨明珠——策略模式,深入探讨其在PHP中的实现方法及其实际应用价值。
策略模式,这一设计模式的核心在于它为软件设计带来了一种全新的视角和方法。它允许我们在运行时根据不同情况选择最适合的解决方案,从而极大地提高了程序的灵活性和可扩展性。在PHP这门广泛应用的编程语言中,策略模式同样大放异彩,为开发者们提供了丰富的创作空间。本文将从策略模式的基本概念入手,逐步深入到PHP中的实现细节,并通过一个具体的实例来展示其在实际项目中的应用效果。我们还将探讨策略模式的优势以及在实际应用中可能遇到的挑战和解决方案,为PHP开发者提供一份宝贵的参考。
|
3月前
|
PHP
深入浅出PHP之文件上传功能
【9月更文挑战第26天】本文将带你了解PHP中的文件上传功能,从基本概念到实战操作,一步步教你如何实现文件上传。我们将通过代码示例和详细的解释,让你轻松掌握这一技能。
|
3月前
|
设计模式 存储 算法
PHP中的设计模式:策略模式的深入解析与应用在软件开发的浩瀚海洋中,PHP以其独特的魅力和强大的功能吸引了无数开发者。作为一门历史悠久且广泛应用的编程语言,PHP不仅拥有丰富的内置函数和扩展库,还支持面向对象编程(OOP),为开发者提供了灵活而强大的工具集。在PHP的众多特性中,设计模式的应用尤为引人注目,它们如同精雕细琢的宝石,镶嵌在代码的肌理之中,让程序更加优雅、高效且易于维护。今天,我们就来深入探讨PHP中使用频率颇高的一种设计模式——策略模式。
本文旨在深入探讨PHP中的策略模式,从定义到实现,再到应用场景,全面剖析其在PHP编程中的应用价值。策略模式作为一种行为型设计模式,允许在运行时根据不同情况选择不同的算法或行为,极大地提高了代码的灵活性和可维护性。通过实例分析,本文将展示如何在PHP项目中有效利用策略模式来解决实际问题,并提升代码质量。
|
4月前
|
数据处理 PHP 开发者
PHP中实现简易计算器功能
【8月更文挑战第31天】在编程的世界里,将理论应用到实践是检验知识掌握程度的试金石。本文将通过一个简单的PHP项目——构建一个简易计算器,引导你理解PHP的基本语法及其在实际应用中的运用。我们将从零开始,逐步搭建起这个计算器,并在过程中加深对PHP数据处理和函数使用的理解。无论你是初学者还是希望温故而知新的开发者,这篇文章都将为你提供一次愉快的编程之旅。
|
4月前
|
Cloud Native PHP Docker
PHP中实现简易计算器功能
【8月更文挑战第31天】本文深入浅出地介绍了云原生技术中的一个重要组成部分—Docker容器。通过实际案例,我们将一起探索如何将应用容器化,并部署到云端。文章不仅涵盖了Docker的基本操作和概念,还提供了详细的代码示例,帮助初学者快速上手。让我们一起开启云原生技术的奇妙旅程吧!
|
5月前
|
编译器 PHP 开发者
深入PHP 7新特性:性能优化与功能增强
【7月更文挑战第15天】本文将深入探讨PHP 7版本中引入的一系列新特性,重点分析这些特性如何对PHP应用的性能进行优化和对功能进行增强。我们将从类型声明的引入、抽象语法树(AST)的改进、到性能提升的各个方面进行剖析,并通过实际代码示例来展示这些新特性的应用。文章旨在为PHP开发者提供一份详尽的指南,帮助他们更好地利用PHP 7的新特性来构建更快、更稳定的应用程序。
51 9
|
6月前
|
大数据 PHP 开发者
深入PHP 7新特性:性能优化与功能增强
【6月更文挑战第19天】在PHP 7的发布中,开发者社区迎来了一系列令人振奋的性能提升和功能增强。本文将深入探讨这些变化如何影响了PHP的应用开发,特别是性能优化方面的细节,如改进的Zend引擎、新增的运算符以及错误处理机制的变革等。我们还将一探究竟,看看这些更新如何使得PHP继续在Web开发领域中保持其竞争力。