📅  最后修改于: 2023-12-03 15:32:14.163000             🧑  作者: Mango
jQuery自动完成(Autocomplete)提供了一种交互方式,当用户键入内容时,自动完成将显示预测的匹配项,帮助用户快速完成表单。而自动完成通常需要从数据库中检索以显示匹配内容。本文将介绍如何使用jQuery自动完成和Javascript连接数据库,实现自动完成功能。
在MySQL数据库中创建一个表,并向表中添加一些数据。
CREATE DATABASE autocomplete;
USE autocomplete;
CREATE TABLE countries (
id INT NOT NULL AUTO_INCREMENT,
name VARCHAR(255) NOT NULL,
PRIMARY KEY (id)
);
INSERT INTO countries (name) VALUES ('China'),('Japan'),('Korea'),('Vietnam'),('Thailand'),('Philippines');
<!DOCTYPE html>
<html>
<head>
<title>jQuery Autocomplete with Database</title>
<link rel="stylesheet" href="//code.jquery.com/ui/1.12.1/themes/base/jquery-ui.css">
<script src="//code.jquery.com/jquery-1.12.4.js"></script>
<script src="//code.jquery.com/ui/1.12.1/jquery-ui.js"></script>
<script>
$( function() {
$( "#country" ).autocomplete({
source: 'search.php'
});
} );
</script>
</head>
<body>
<h1>jQuery Autocomplete with Database</h1>
<p>Type something in the input field:</p>
<form>
<label for="country">Country: </label>
<input type="text" id="country" name="country">
</form>
</body>
</html>
创建一个名为search.php
的PHP文件。该文件处理自动完成功能,从数据库中检索查询,以在用户键入时显示匹配项。
<?php
$pdo = new PDO('mysql:host=localhost;dbname=autocomplete', 'username', 'password');
$searchTerm = $_GET['term'];
$stmt = $pdo->prepare("SELECT name FROM countries WHERE name LIKE '%" . $searchTerm . "%'");
$stmt->execute();
$data = array();
while ($row = $stmt->fetch(PDO::FETCH_ASSOC)) {
$data[] = $row['name'];
}
echo json_encode($data);
?>
使用浏览器打开HTML文件。在输入框中键入内容,将看到自动完成下拉菜单中显示匹配项。
本文介绍了如何使用jQuery自动完成和Javascript连接数据库,实现自动完成功能。通过该功能,用户可以更快地填写表单,并且程序员可以更容易地实现交互式UI。