Rumah > Artikel > rangka kerja php > thinkphp multi-pilih padam
thinkphp6 ialah rangka kerja pembangunan PHP yang sangat baik Ia berdasarkan seni bina MVC Ia mempunyai kecekapan pembangunan yang tinggi, mudah digunakan, selamat dan boleh dipercayai, dan sangat memudahkan proses penulisan kod. Hari ini, mari kita bincangkan tentang cara menggunakan thinkphp6 untuk melaksanakan pemadaman berbilang pilihan.
1. Pengenalan
Pemadaman berbilang pilih ialah salah satu fungsi umum aplikasi web moden. Ia membolehkan pengguna memilih berbilang item dalam jadual atau senarai data dan kemudian memadamnya. Dalam artikel ini, kami akan memperkenalkan cara menggunakan pengawal dan model thinkphp6 untuk mencapai fungsi ini.
2. Wujudkan pangkalan data
Pertama, kita perlu mencipta jadual sampel dalam pangkalan data MySQL. Kami akan menggunakan alat baris arahan atau phpMyAdmin untuk melengkapkan langkah ini.
BUAT JADUAL example_table
(
id
int(11) NOT NULL AUTO_INNCREMENT,
name
varchar(255) NOT NULL,
email
var NOT char(255) NULL,
KUNCI UTAMA (id
)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
Ini akan mencipta jadual baharu yang dipanggil "example_table" dengan id, nama dan medan e-mel.
3. Hasilkan model dan pengawal
Seterusnya, kita perlu menjana model dan pengawal berdasarkan struktur jadual yang dibuat di atas.
Gunakan alat baris arahan Artisan thinkphp6 untuk menjana fail ini dengan cepat:
php think make:model ExampleModel --migration
Menjalankan arahan di atas akan menghasilkan fail model baharu ( app /Model/ExampleModel.php ) dan fail pemindahan pangkalan data baharu ( pangkalan data /migrations /yyyymmddhhmmss_create_example_model.php ).
php think make:controller ExampleController
Menjalankan arahan di atas akan menghasilkan fail baharu yang dipanggil ExampleController.php ( app /Controller/ExampleController.php ).
4. Tulis kod
Sekarang kami bersedia untuk menulis kod pengawal untuk mengendalikan pemadaman berbilang pilihan. Dalam pengawal, kita perlu melaksanakan dua fungsi tindakan utama: indeks (digunakan untuk memaparkan semua data) dan padam (digunakan untuk mengendalikan permintaan pemadaman).
Dalam fail app/Controller/ExampleController.php, tambahkan kod berikut:
<?php namespace appcontroller; use thinkacadeView; use thinkRequest; use appmodelExampleModel; class ExampleController { public function index() { $list = ExampleModel::all(); return View::fetch('index', [ 'list' => $list, ]); } public function delete(Request $request) { $ids = $request->param('ids'); foreach ($ids as $id) { ExampleModel::destroy($id); } return ['status' => 'success', 'message' => '删除成功']; } }
Dalam kod di atas, kami mula-mula mengimport kelas dan menentukan dua fungsi indeks dan padam. Indeks fungsi digunakan untuk mendapatkan semua data daripada ExampleModel dan menghantarnya ke dalam templat. Fungsi padam mendapatkan senarai ID yang akan dipadamkan daripada permintaan HTTP dan memadamkan item menggunakan kaedah ExampleModel::destroy.
Seterusnya, kita perlu menambah kotak semak dan butang padam pada templat. Buka fail aplikasi /View /example /index.html dan tambahkan kod berikut:
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>Example</title> </head> <body> <h1>Example</h1> <table> <thead> <tr> <th><input type="checkbox" id="check-all"></th> <th>ID</th> <th>Name</th> <th>Email</th> </tr> </thead> <tbody> <?php foreach ($list as $item): ?> <tr> <td><input type="checkbox" name="ids[]" value="<?php echo $item->id ?>"></td> <td><?php echo $item->id ?></td> <td><?php echo $item->name ?></td> <td><?php echo $item->email ?></td> </tr> <?php endforeach ?> </tbody> </table> <button id="btn-delete">删除</button> <script> var btnDelete = document.querySelector('#btn-delete'); btnDelete.addEventListener('click', function () { var ids = []; var checkboxes = document.querySelectorAll('input[type=checkbox][name^=ids]:checked'); for (var i = 0; i < checkboxes.length; i++) { ids.push(checkboxes[i].value); } if (ids.length > 0) { if (confirm('确定删除?')) { var xhr = new XMLHttpRequest(); xhr.open('POST', '/example/delete'); xhr.setRequestHeader('Content-Type', 'application/json;charset=UTF-8'); xhr.onload = function () { var result = JSON.parse(xhr.responseText); if (result.status == 'success') { alert(result.message); location.reload(); } else { console.error(result); alert('删除失败'); } }; xhr.onerror = function () { console.error(xhr); alert('网络异常,请重试'); }; xhr.send(JSON.stringify({ids: ids})); } } else { alert('请选择要删除的项目'); } }); var checkAll = document.querySelector('#check-all'); checkAll.addEventListener('click', function () { var checkboxes = document.querySelectorAll('input[type=checkbox][name^=ids]'); for (var i = 0; i < checkboxes.length; i++) { checkboxes[i].checked = checkAll.checked; } }); </script> </body> </html>
Dalam kod di atas, kami telah menggunakan JavaScript untuk mendapatkan semua kotak pilihan yang dipilih dan menghantar ID ini ke laluan pelayan / padam.
5. Ujian
Kini, kita boleh membuka konsol dan menggunakan arahan berikut untuk memulakan pelayan web.
php think run
Kemudian masukkan localhost:8000/example dalam penyemak imbas untuk membuka halaman utama contoh, klik kotak berbilang pilih untuk memilih item yang hendak dipadamkan. Akhir sekali, klik butang Padam untuk memadam item yang dipilih.
6. Kesimpulan
Dalam artikel ini, kami menggunakan pengawal, model dan pandangan thinkphp6 untuk melaksanakan fungsi pemadaman berbilang pilih. Ciri ini boleh memainkan peranan penting dalam aplikasi web dan mengoptimumkan pengalaman pengguna aplikasi tersebut.
Atas ialah kandungan terperinci thinkphp multi-pilih padam. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!