Rumah > pembangunan bahagian belakang > masalah PHP > Pemadaman kelompok kotak berbilang pilihan dalam php

Pemadaman kelompok kotak berbilang pilihan dalam php

WBOY
Lepaskan: 2023-05-07 12:57:07
asal
710 orang telah melayarinya

Dalam pembangunan web, kotak semak ialah komponen interaksi pengguna yang biasa. Dalam sesetengah senario yang memerlukan pemprosesan data kelompok, kami sering menggunakan kotak berbilang pilihan untuk melaksanakan operasi kelompok. Dalam PHP, adalah keperluan yang sangat biasa untuk melaksanakan pemadaman kelompok bagi kotak berbilang pilihan. Artikel ini akan memperkenalkan cara menggunakan PHP untuk melaksanakan pemadaman kelompok bagi kotak berbilang pilihan.

1. Reka bentuk halaman HTML

Menggunakan kotak berbilang pilihan untuk melaksanakan pemadaman kelompok memerlukan penambahan berbilang kotak berbilang pilihan pada halaman HTML dan butang "Padam". Berikut ialah contoh halaman HTML ringkas, yang menggunakan rangka kerja Bootstrap untuk mencantikkan halaman:

<!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>
Salin selepas log masuk

Halaman ini mengandungi 6 kotak berbilang pilihan dan butang "Padam item yang dipilih". Atribut nama bagi setiap kotak berbilang pilihan ialah "id[]", jadi apabila pengguna memilih berbilang pilihan, kami boleh menggunakan $_POST['id'] untuk mendapatkan ID semua item yang dipilih.

2. Pelaksanaan PHP

Dalam halaman HTML, kami menyediakan borang borang dan menentukan fail PHP untuk memproses borang sebagai "delete.php". Mari kita lihat cara mengendalikan penyerahan borang dan melaksanakan operasi pemadaman kelompok dalam fail delete.php.

Mula-mula anda perlu mendapatkan nilai kotak berbilang pilihan yang dipilih oleh pengguna pada halaman (iaitu, ID item yang dipilih). Kita boleh menggunakan $_POST['id'] untuk mendapatkan nilai ini, dengan "id" sepadan dengan atribut nama kotak berbilang pilihan dalam halaman HTML.

$ids = $_POST['ids']; // 获取多选框选中项的ID值
Salin selepas log masuk

Seterusnya, anda perlu menentukan sama ada pengguna telah memilih item data untuk dipadamkan dan melakukan operasi pemadaman. Di sini kita boleh memadamkan data yang sepadan satu demi satu dengan melintasi ID item yang dipilih. Andaikan di sini bahawa kami mempunyai jadual pelajar, yang mengandungi tiga medan: id, nama dan umur Kami perlu memadamkan semua rekod yang idnya berada dalam senarai ID item yang dipilih.

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 条数据"; // 输出删除结果
}
Salin selepas log masuk

Dalam kod di atas, tentukan dahulu sama ada pengguna telah memilih item data untuk dipadamkan (iaitu, sama ada $_POST['id'] kosong Jika ia tidak kosong, sambungkan ke pangkalan data dan pilihnya Nilai ID item digabungkan menjadi rentetan yang dipisahkan koma menggunakan fungsi implode(). Kemudian gunakan kenyataan DELETE FROM...WHERE... untuk menjana kenyataan padam, dan gunakan nilai ID item yang dipilih sebagai syarat WHERE untuk melaksanakan operasi padam. Akhirnya, hasil pemadaman adalah output.

3. Kod lengkap

Coretan kod di atas hanya melaksanakan bahagian teras operasi pemadaman Berikut ialah kod delete.php yang lengkap:

<!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>
Salin selepas log masuk

Kod ini ialah. dalam HTML kod PHP dibenamkan dalam halaman untuk memaparkan hasil pemadaman. Pada masa yang sama, jangan isikan atribut tindakan dalam borang, supaya borang itu akan diserahkan ke halaman semasa, yang memudahkan kami memproses data. Apabila pengguna menyerahkan borang, logik penghakiman dalam kod PHP akan dilaksanakan terlebih dahulu, dan kemudian operasi pemadaman akan dilaksanakan. Akhir sekali, berdasarkan keputusan pelaksanaan, keputusan pemadaman dipaparkan kepada pengguna.

4. Ringkasan

Adalah perkara biasa untuk menggunakan kotak berbilang pilihan untuk melaksanakan operasi pemadaman kelompok dalam PHP, dan ia adalah teknologi yang sering kita perlu gunakan dalam pembangunan web. Dalam artikel ini, kami memperkenalkan cara menggunakan PHP untuk melaksanakan pemadaman kelompok kotak berbilang pilihan dan menerangkan langkah pelaksanaan khusus. Saya harap artikel ini dapat memberi sedikit rujukan dan bantuan untuk pemula.

Atas ialah kandungan terperinci Pemadaman kelompok kotak berbilang pilihan dalam php. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan