Cara menggunakan PHP dan Vue untuk membangunkan fungsi carian pantas untuk pengurusan gudang
Dalam sistem pengurusan gudang moden, fungsi carian pantas adalah penting. Ia boleh membantu pengguna mencari maklumat gudang yang diperlukan dengan cepat dan meningkatkan kecekapan kerja. Artikel ini akan memperkenalkan cara menggunakan PHP dan Vue untuk membangunkan fungsi carian pantas dalam sistem pengurusan gudang, dan menyediakan contoh kod khusus.
Sebelum anda mula, pastikan anda telah memasang perisian berikut:
Pertama, kita perlu mencipta jadual data untuk menyimpan maklumat gudang. Laksanakan pernyataan SQL berikut dalam pangkalan data MySQL:
CREATE DATABASE IF NOT EXISTS `repository_management`; USE `repository_management`; CREATE TABLE `repositories` ( `id` INT(11) NOT NULL AUTO_INCREMENT, `name` VARCHAR(255) NOT NULL, `description` TEXT, `location` VARCHAR(255) NOT NULL, PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; INSERT INTO `repositories` (`name`, `description`, `location`) VALUES ('仓库A', '这是仓库A的描述', '地点A'), ('仓库B', '这是仓库B的描述', '地点B'), ('仓库C', '这是仓库C的描述', '地点C');
Kod di atas mencipta pangkalan data bernama repository_management
, dan mencipta jadual data bernama repositori
di dalamnya, dan memasukkan beberapa sampel data. repository_management
的数据库,并在其中创建了一个名为repositories
的数据表,并插入了一些示例数据。
接下来,我们将使用PHP来开发后端API,用于提供仓库数据和搜索功能。创建一个名为api.php
的文件,将其放在服务器的Web根目录下。
<?php header('Content-Type: application/json'); // 连接数据库 $servername = 'localhost'; $username = '数据库用户名'; $password = '数据库密码'; $dbname = 'repository_management'; $conn = new mysqli($servername, $username, $password, $dbname); if ($conn->connect_error) { die('连接失败: ' . $conn->connect_error); } // 获取仓库列表 if ($_SERVER['REQUEST_METHOD'] === 'GET') { $sql = 'SELECT * FROM `repositories`'; $result = $conn->query($sql); if ($result->num_rows > 0) { $repositories = array(); while ($row = $result->fetch_assoc()) { $repositories[] = $row; } echo json_encode($repositories); } else { echo '[]'; } } // 搜索仓库 if ($_SERVER['REQUEST_METHOD'] === 'POST') { $searchTerm = $_POST['term']; $sql = "SELECT * FROM `repositories` WHERE `name` LIKE '%$searchTerm%'"; $result = $conn->query($sql); if ($result->num_rows > 0) { $repositories = array(); while ($row = $result->fetch_assoc()) { $repositories[] = $row; } echo json_encode($repositories); } else { echo '[]'; } } $conn->close();
在上述代码中,我们首先建立与数据库的连接,然后定义两个接口:获取仓库列表和搜索仓库。获取仓库列表接口通过执行SQL语句SELECT * FROM
repositories从数据库中获取所有仓库数据,并将结果返回为JSON格式的数据。搜索仓库接口则是通过获取从前端传递过来的搜索关键字,执行SQL语句`SELECT * FROM `repositories` WHERE `name` LIKE '%$searchTerm%'
来进行模糊搜索,并将结果返回为JSON格式的数据。
请记得将代码中的数据库用户名
和数据库密码
替换为你自己的实际数据库用户名和密码。
接下来,我们将使用Vue.js来开发前端页面,用于展示仓库信息和搜索功能。创建一个名为index.html
的文件,并将其放在服务器的Web根目录下。
<!DOCTYPE html> <html lang="zh-CN"> <head> <meta charset="utf-8"> <title>仓库管理系统</title> <script src="https://cdn.jsdelivr.net/npm/vue"></script> </head> <body> <div id="app"> <h1>仓库管理系统</h1> <input type="text" v-model="searchTerm" placeholder="输入关键字搜索仓库"> <ul> <li v-for="repository in repositories">{{ repository.name }}({{ repository.location }})</li> </ul> </div> <script> new Vue({ el: '#app', data: { repositories: [], searchTerm: '' }, mounted: function () { this.getRepositories(); }, methods: { getRepositories: function () { fetch('api.php') .then(function(response) { return response.json(); }) .then(function(repositories) { this.repositories = repositories; }.bind(this)) .catch(function(error) { console.log(error); }); }, searchRepositories: function () { fetch('api.php', { method: 'POST', headers: { 'Content-Type': 'application/x-www-form-urlencoded' }, body: 'term=' + this.searchTerm }) .then(function(response) { return response.json(); }) .then(function(repositories) { this.repositories = repositories; }.bind(this)) .catch(function(error) { console.log(error); }); } }, watch: { searchTerm: function () { this.searchRepositories(); } } }); </script> </body> </html>
在上述代码中,我们创建了一个Vue实例,并在data
属性中定义了两个变量:repositories
(用于存储仓库数据)和searchTerm
(用于存储搜索关键字)。在mounted
生命周期钩子中,我们调用getRepositories
方法来从后端获取仓库数据,并将其赋值给repositories
变量。getRepositories
方法使用了fetch
函数来发送GET请求。
在模板中,我们使用了v-for
指令来遍历repositories
变量,并将每个仓库的名称和位置显示在页面上。输入框中使用了v-model
指令将输入的内容和searchTerm
变量进行了双向绑定。在输入框内容发生变化时,watch
属性中的searchTerm
监听到变化后,自动调用searchRepositories
方法来发送POST请求搜索仓库数据。
将上述代码保存后,启动你的Web服务器,并在浏览器中打开index.html
api.php
dan letakkannya dalam direktori akar web pelayan. 🎜rrreee🎜Dalam kod di atas, kami mula-mula mewujudkan sambungan dengan pangkalan data, dan kemudian menentukan dua antara muka: mendapatkan senarai gudang dan mencari gudang. Antara muka Dapatkan Senarai Gudang memperoleh semua data gudang daripada pangkalan data dengan melaksanakan pernyataan SQL SELECT * FROM
repositori dan mengembalikan hasilnya sebagai data dalam format JSON. Antara muka gudang carian melakukan carian kabur dengan mendapatkan kata kunci carian yang diluluskan dari bahagian hadapan, melaksanakan pernyataan SQL `PILIH * DARI `repositori` DI MANA `nama` SEPERTI '%$searchTerm%'
, dan mengembalikan hasilnya. Data dalam format JSON. 🎜🎜Sila ingat untuk menggantikan Nama Pengguna Pangkalan Data
dan Kata Laluan Pangkalan Data
dalam kod dengan nama pengguna dan kata laluan pangkalan data anda sendiri. 🎜index.html
dan letakkan dalam direktori akar web pelayan. 🎜rrreee🎜Dalam kod di atas, kami mencipta contoh Vue dan mentakrifkan dua pembolehubah dalam atribut data
: repositori
(digunakan untuk menyimpan data gudang) dan searchTerm (digunakan untuk menyimpan kata kunci carian). Dalam cangkuk kitaran hayat <code>dipasang
, kami memanggil kaedah getRepositories
untuk mendapatkan data gudang daripada bahagian belakang dan menetapkannya kepada pembolehubah repositori
. Kaedah getRepositories
menggunakan fungsi fetch
untuk menghantar permintaan GET. 🎜🎜Dalam templat, kami menggunakan arahan v-for
untuk beralih melalui pembolehubah repositori
dan memaparkan nama dan lokasi setiap repositori pada halaman. Arahan v-model
digunakan dalam kotak input untuk mengikat kandungan input secara dwiarah kepada pembolehubah searchTerm
. Apabila kandungan kotak input berubah, searchTerm
dalam atribut watch
mengesan perubahan dan secara automatik memanggil kaedah searchRepositories
untuk menghantar permintaan POST untuk mencari data gudang. 🎜index.html
dalam penyemak imbas. Anda akan melihat halaman dengan kotak input dan senarai repositori. Selepas memasukkan kata kunci dalam kotak input, halaman akan memaparkan maklumat gudang yang berkaitan dengan kata kunci dalam masa nyata. 🎜🎜Di atas adalah keseluruhan proses menggunakan PHP dan Vue untuk membangunkan fungsi carian pantas pengurusan gudang. Dengan merealisasikan kerjasama antara API bahagian belakang dan halaman hujung hadapan, kami boleh mencari gudang dengan cepat dan menjelaskan maklumat lokasi dan penerangan mereka. Fungsi sedemikian adalah sangat praktikal dan mudah untuk dilaksanakan, dan boleh meningkatkan kecekapan pengurusan gudang. 🎜Atas ialah kandungan terperinci Cara menggunakan PHP dan Vue untuk membangunkan fungsi carian pantas untuk pengurusan gudang. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!