Dans les sites Web modernes, un champ de recherche utile est indispensable. Cette fonctionnalité peut grandement simplifier le processus de recherche de l'utilisateur et améliorer l'expérience utilisateur du site Web. L'ajout d'une zone d'invite à côté du champ de recherche amène l'efficacité de la recherche de l'utilisateur à un nouveau niveau. Ainsi, cet article expliquera comment utiliser PHP pour implémenter une fonction de zone d'invite de champ de recherche.
1. Principe de mise en œuvre
Dans le processus d'implémentation de la boîte d'invite de recherche en PHP, nous devons utiliser la technologie AJAX. Il est principalement divisé selon les étapes suivantes :
2. Étapes de mise en œuvre
Nous créons d'abord une table de produits nommée products
, qui contient les champs suivants : products
的商品表,包含以下字段:
id int(11) 商品 ID name varchar(255) 商品名称 description text 商品描述 price decimal(10,2) 商品价格
我们需要编写一个 query()
函数去连接数据库并执行查询,返回结果数组。示例如下:
<?php function query($query) { $database = new PDO('mysql:host=localhost; dbname=database_name', 'database_user', 'database_password'); $database->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); $stmt = $database->prepare($query); $stmt->execute(); return $stmt->fetchAll(PDO::FETCH_ASSOC); } ?>
实现搜索框提示框逻辑的代码如下:
<?php $keyword = $_GET['keyword']; if ($keyword) { $result = query("SELECT name FROM products WHERE name LIKE '%$keyword%' LIMIT 5"); $data = array(); foreach ($result as $row) { $data[] = $row['name']; } echo json_encode($data); } ?>
以上代码执行如下操作:
从 GET 请求中获取搜索关键字。
查询数据库中与关键字匹配的前 5 个商品名称,并将结果保存在 $data
数组中。
将数据编码成 JSON 格式并返回给客户端。
编写客户端代码
实现搜索框提示框显示的客户端代码如下:
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>PHP 搜索框提示框实例</title> <script src="https://cdn.bootcss.com/jquery/3.5.1/jquery.min.js"></script> </head> <body> <input type="text" id="search-box" placeholder="请输入搜索关键字"> <div id="search-result"></div> <script> $(document).ready(function() { $('#search-box').keyup(function() { var keyword = $(this).val(); $.ajax({ url: 'search.php', type: 'GET', dataType: 'json', data: {keyword: keyword}, success: function(data) { var html = ''; for (var i = 0; i < data.length; i++) { html += '<div>' + data[i] + '</div>'; } $('#search-result').html(html); }, error: function() { $('#search-result').html('无法获取数据!'); } }); }); }); </script> </body> </html>
以上代码执行如下操作:
监听搜索框输入事件。
获取搜索框输入关键字并发送 AJAX 请求到 search.php
rrreee
Nous devons écrire une fonction query()
pour nous connecter à la base de données et exécuter la requête, renvoyant le tableau de résultats. Un exemple est le suivant :
Le code pour implémenter la logique de la boîte d'invite de recherche est le suivant : rrreee
Le code ci-dessus effectue les opérations suivantes :$data
. 🎜🎜🎜🎜Encodez les données au format JSON et renvoyez-les au client. 🎜🎜🎜🎜Écrire le code client🎜🎜🎜🎜Le code client pour implémenter l'affichage de la boîte de recherche est le suivant : 🎜rrreee🎜Le code ci-dessus effectue les opérations suivantes : 🎜search.php
. 🎜🎜🎜🎜Affichez les données renvoyées par AJAX dans la zone d'invite de recherche. 🎜🎜🎜🎜🎜 3. Résumé🎜🎜🎜Grâce aux étapes ci-dessus, nous avons implémenté avec succès une fonction de zone d'invite de champ de recherche. L'utilisateur saisit des mots-clés dans le champ de recherche et la page Web envoie les mots-clés au serveur via la technologie AJAX. Le serveur interroge la base de données en fonction des mots-clés et renvoie les résultats correspondants à la page Web. sous la forme d'une boîte d'invite de recherche, réalisant une excellente expérience de recherche utilisateur. Nous pouvons modifier de manière flexible cette méthode de mise en œuvre spécifique en fonction des besoins réels pour obtenir les meilleurs résultats. 🎜Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!