Rumah  >  Artikel  >  rangka kerja php  >  thinkphp multi-pilih padam

thinkphp multi-pilih padam

WBOY
WBOYasal
2023-05-26 13:34:10701semak imbas

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 thinkacadeView;
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!

Kenyataan:
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
Artikel sebelumnya:kemas kini thinkphp gagalArtikel seterusnya:kemas kini thinkphp gagal