thinkphp多選刪除

thinkphp6是一款非常優秀的php開發框架,它基于mvc架構,開發效率高、易上手、安全可靠,同時極大簡化了代碼編寫的流程。今天,我們來談一下使用thinkphp6實現多選刪除的方法。

一、前言

多選刪除是現代Web應用程序的常見功能之一。它允許用戶在數據表格或列表中選擇多個項目,然后可以刪除它們。在這篇文章中,我們將介紹如何使用thinkphp6的控制器和模型來實現這個功能。

二、建立數據庫

首先,我們需要在MySQL數據庫中建立一個示例表。我們將使用命令行工具或phpMyAdmin來完成這個步驟。

立即學習PHP免費學習筆記(深入)”;

CREATE TABLE example_table (
id int(11) NOT NULL AUTO_INCREMENT,
name varchar(255) NOT NULL,
email varchar(255) NOT NULL,
PRIMARY KEY (id)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;

這將創建一個名為“ example_table”的新表,其中包含id,name和email字段。

三、生成模型和控制器

接下來,我們需要根據上面創建的表結構來生成一個模型和一個控制器。

使用thinkphp6的Artisan命令行工具可以快速生成這些文件:

php think make:model ExampleModel –migration

運行上述命令將生成一個新的模型文件( app /Model/ExampleModel.php )和一個新的數據庫遷移文件( database /migrations /yyyymmddhhmmss_create_example_model.php )。

php think make:controller ExampleController

運行上述命令將生成一個名為ExampleController.php的新文件( app /Controller/ExampleController.php )。

四、編寫代碼

現在我們已經準備好編寫控制器代碼來處理多選刪除了。在控制器中,我們需要實現兩個主要的action函數:index(用于顯示所有數據)和delete(用于處理刪除請求)。

在app /Controller /ExampleController.php文件中,添加以下代碼:

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' => '刪除成功'];     } }

在上面的代碼中,我們首先導入了類,并定義了兩個函數index和delete。函數index用于從ExampleModel中獲取所有數據,并將其傳遞到模板中。函數delete從HTTP請求中獲取要刪除的ID列表,并使用ExampleModel::destroy方法刪除這些項目。

接下來,我們需要為模板添加一個多選框以及刪除按鈕。打開app /View /example /index.html文件,添加以下代碼:

       <meta charset="UTF-8"><title>Example</title><h1>Example</h1>     

ID Name Email
id ?> name ?> email ?>

<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>

在上述代碼中,我們使用了JavaScript來獲取所有選中的多選框,并將這些ID傳遞給服務器的/delete路由。

五、測試

現在,我們可以打開控制臺,使用以下命令將Web服務器啟動起來。

php think run

然后在瀏覽器中輸入localhost:8000/example,即可打開example的首頁,點擊多選框以選擇要刪除的項。最后點擊刪除按鈕即可刪除選擇的項。

六、結論

在這篇文章中,我們使用thinkphp6的控制器,模型和視圖來實現了多選刪除的功能。這個功能可以在Web應用程序中發揮重要作用,優化應用程序的用戶體驗。

? 版權聲明
THE END
喜歡就支持一下吧
點贊11 分享