php中多选框批量删除

在Web开发中,多选框(Checkbox)是常见的用户交互组件。在一些需要批量处理数据的场景中,我们也常常使用多选框来实现批量操作。在PHP中,实现多选框的批量删除操作是很常见的需求,本文将介绍如何使用PHP实现多选框批量删除。

一、HTML页面设计

使用多选框实现批量删除需要在HTML页面中添加多个多选框,同时加入一个“删除”按钮。下面是一个简单的HTML页面示例,其中使用了Bootstrap框架以美化页面:

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

51

<!DOCTYPE html>

<html>

<head>

<meta charset=”UTF-8″>

<title>多选框批量删除</title>

<link rel=”stylesheet” href=”https://cdn.bootcdn.net/ajax/libs/twitter-bootstrap/4.6.0/css/bootstrap.min.css”>

</head>

<body>

<div class=”container mt-5″>

<h1>多选框批量删除</h1>

<form method=”post” action=”delete.php”>

<div class=”row”>

<div class=”col-sm”>

<div class=”form-check”>

<input class=”form-check-input” type=”checkbox” name=”ids[]” value=”1″>

<label class=”form-check-label”>选项1</label>

</div>

<div class=”form-check”>

<input class=”form-check-input” type=”checkbox” name=”ids[]” value=”2″>

<label class=”form-check-label”>选项2</label>

</div>

<div class=”form-check”>

<input class=”form-check-input” type=”checkbox” name=”ids[]” value=”3″>

<label class=”form-check-label”>选项3</label>

</div>

</div>

<div class=”col-sm”>

<div class=”form-check”>

<input class=”form-check-input” type=”checkbox” name=”ids[]” value=”4″>

<label class=”form-check-label”>选项4</label>

</div>

<div class=”form-check”>

<input class=”form-check-input” type=”checkbox” name=”ids[]” value=”5″>

<label class=”form-check-label”>选项5</label>

</div>

<div class=”form-check”>

<input class=”form-check-input” type=”checkbox” name=”ids[]” value=”6″>

<label class=”form-check-label”>选项6</label>

</div>

</div>

</div>

<div class=”mt-3″>

<button type=”submit” class=”btn btn-danger”>删除选中项</button>

</div>

</form>

</div>

<script src=”https://cdn.bootcdn.net/ajax/libs/jquery/3.6.0/jquery.min.js”></script>

<script src=”https://cdn.bootcdn.net/ajax/libs/popper.js/2.9.3/umd/popper.min.js”></script>

<script src=”https://cdn.bootcdn.net/ajax/libs/twitter-bootstrap/4.6.0/js/bootstrap.min.js”></script>

</body>

</html>

登录后复制

这个页面包含了6个多选框以及一个“删除选中项”的按钮。每个多选框的name属性都为“ids[]”,这样当用户选中多个选项之后,我们就可以使用$_POST[ids]来获取所有选中项的ID。

二、PHP实现

在HTML页面中我们设置了一个form表单,并指定了处理表单的PHP文件为“delete.php”。下面就来看一下如何在delete.php文件中处理表单提交和实现批量删除操作。

首先需要获取用户在页面上选择的多选框的值(即选中项的ID)。我们可以使用$_POST[ids]来获取这个值,这里的“ids”对应了HTML页面中多选框的name属性。

1

$ids = $_POST[ids]; // 获取多选框选中项的ID值

登录后复制

接下来需要判断用户是否选中了要删除的数据项,并执行删除操作。这里我们可以通过遍历选中项的ID,依次删除对应的数据。这里假设我们有一个students表,其包含id、name和age三个字段,我们需要删除其中id在选中项ID列表中的所有记录。

1

2

3

4

5

6

7

8

9

10

11

12

13

14

if (!empty($ids)) {

$dsn      = “mysql:host=localhost;dbname=test;charset=utf8”;

$username = “root”;

$password = “root”;

try {

$pdo = new PDO($dsn, $username, $password);

} catch (PDOException $e) {

die(“连接数据库失败:” . $e->getMessage());

}

$ids_str = implode(“,”, $ids); // 将选中项的ID值连接成逗号分隔的字符串

$sql     = “DELETE FROM students WHERE id IN ($ids_str)”; // 生成删除语句

$res     = $pdo->exec($sql); // 执行删除操作

echo “成功删除 $res 条数据”; // 输出删除结果

}

登录后复制

在上面的代码中,首先判断用户是否选中了要删除的数据项(即$_POST[ids]是否为空),如果不为空则进行数据库连接,并将选中项的ID值使用implode()函数连接为逗号分隔的字符串。接着使用DELETE FROM…WHERE…语句生成删除语句,将选中项的ID值作为WHERE条件进行删除操作。最后输出删除结果。

三、完整代码

上面的代码片段只是实现了删除操作的核心部分,下面是完整的delete.php代码:

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

51

52

53

54

55

56

57

58

59

60

61

62

63

64

65

66

67

68

69

70

71

72

<!DOCTYPE html>

<html>

<head>

<meta charset=”UTF-8″>

<title>多选框批量删除</title>

<link rel=”stylesheet” href=”https://cdn.bootcdn.net/ajax/libs/twitter-bootstrap/4.6.0/css/bootstrap.min.css”>

</head>

<body>

<div class=”container mt-5″>

<h1>多选框批量删除</h1>

<?php

if (!empty($_POST)) {

$ids = $_POST[ids];

if (!empty($ids)) {

$dsn      = “mysql:host=localhost;dbname=test;charset=utf8”;

$username = “root”;

$password = “root”;

try {

$pdo = new PDO($dsn, $username, $password);

} catch (PDOException $e) {

die(“连接数据库失败:” . $e->getMessage());

}

$ids_str = implode(“,”, $ids);

$sql     = “DELETE FROM students WHERE id IN ($ids_str)”;

$res     = $pdo->exec($sql);

echo “<div class=alert alert-success>成功删除 $res 条数据</div>”;

} else {

echo “<div class=alert alert-danger>请至少选择一条数据</div>”;

}

}

?>

<form method=”post” action=””>

<div class=”row”>

<div class=”col-sm”>

<div class=”form-check”>

<input class=”form-check-input” type=”checkbox” name=”ids[]” value=”1″>

<label class=”form-check-label”>选项1</label>

</div>

<div class=”form-check”>

<input class=”form-check-input” type=”checkbox” name=”ids[]” value=”2″>

<label class=”form-check-label”>选项2</label>

</div>

<div class=”form-check”>

<input class=”form-check-input” type=”checkbox” name=”ids[]” value=”3″>

<label class=”form-check-label”>选项3</label>

</div>

</div>

<div class=”col-sm”>

<div class=”form-check”>

<input class=”form-check-input” type=”checkbox” name=”ids[]” value=”4″>

<label class=”form-check-label”>选项4</label>

</div>

<div class=”form-check”>

<input class=”form-check-input” type=”checkbox” name=”ids[]” value=”5″>

<label class=”form-check-label”>选项5</label>

</div>

<div class=”form-check”>

<input class=”form-check-input” type=”checkbox” name=”ids[]” value=”6″>

<label class=”form-check-label”>选项6</label>

</div>

</div>

</div>

<div class=”mt-3″>

<button type=”submit” class=”btn btn-danger”>删除选中项</button>

</div>

</form>

</div>

<script src=”https://cdn.bootcdn.net/ajax/libs/jquery/3.6.0/jquery.min.js”></script>

<script src=”https://cdn.bootcdn.net/ajax/libs/popper.js/2.9.3/umd/popper.min.js”></script>

<script src=”https://cdn.bootcdn.net/ajax/libs/twitter-bootstrap/4.6.0/js/bootstrap.min.js”></script>

</body>

</html>

登录后复制

这段代码在HTML页面中嵌入了PHP代码,用于显示删除结果。同时在form表单中action属性不填写,这样表单会提交到当前页面,方便我们处理数据。当用户提交表单时,会先执行PHP代码中的判断逻辑,然后执行删除操作。最后根据执行结果,向用户显示删除结果。

四、总结

在PHP中使用多选框实现批量删除操作比较常见,是我们在Web开发中经常需要用到的技术。在本文中,我们介绍了如何使用PHP实现多选框批量删除操作,并讲解了具体的实现步骤。希望本文对于初学者们能够提供一些参考和帮助。

以上就是php中多选框批量删除的详细内容,更多请关注php中文网其它相关文章!

TG交流群(点击进入)----付费帮助搭建---修复---二开,以及发布求资源.
QQ交流群 922260178
© 版权声明
THE END
喜欢就支持一下吧
点赞1.8W+ 分享
评论 抢沙发

请登录后发表评论

    暂无评论内容