悠悠楠杉
搜索功能实现:Ajax分页与文章生成
搜索功能实现:Ajax 分页与文章生成
1. 需求概述
- 目标:实现一个基于 Ajax 的搜索功能,支持分页显示搜索结果。
- 数据源:假设我们有一个模拟的数据库,其中包含文章标题、关键词、描述和正文。
- 展示形式:每页显示 10 条结果,并支持跳转到任意一页。
2. 技术栈
- 前端:HTML, CSS, JavaScript (使用 jQuery 简化 Ajax 调用)
- 后端:假设使用 Node.js 配合 Express 框架进行模拟数据库操作
- 模拟数据库:内存中的数组或对象,用于模拟数据存储和检索
3. 前端实现(HTML + JavaScript)
HTML 部分
html
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>搜索功能演示</title>
<link rel="stylesheet" href="style.css">
</head>
<body>
<div class="search-container">
<input type="text" id="search-input" placeholder="输入搜索关键词">
<button id="search-btn">搜索</button>
</div>
<div id="results-container"></div>
<script src="https://code.jquery.com/jquery-3.6.0.min.js"></script>
<script src="app.js"></script>
</body>
</html>
JavaScript (使用 jQuery 和 Ajax)
```javascript
$(document).ready(function() {
$('#search-btn').click(function() {
var query = $('#search-input').val().trim(); // 获取用户输入的关键词
if (query) { // 如果关键词非空,则执行搜索操作
searchArticles(query, 1); // 调用搜索函数,第一页开始搜索
} else {
alert('请输入搜索关键词!');
}
});
});
function searchArticles(query, page) {
$.ajax({ // 使用 jQuery 的 Ajax 方法发送请求到服务器端模拟的 API 接口
url: '/search', // 假设 API 地址为 /search,根据实际情况修改为你的后端接口地址
type: 'GET', // 请求类型为 GET,实际中可能为 POST 并携带查询参数等
data: { query: query, page: page }, // 发送的查询参数包括关键词和页码
success: function(data) { // 成功后的回调函数,data 为服务器返回的数据(JSON 格式)
$('#results-container').empty(); // 清空结果容器的内容,准备加载新数据
$.each(data.articles, function(index, article) { // 遍历返回的文章数据并添加到 DOM 中显示
var resultHtml = ### ${article.title}\n
+
* 关键词: ${article.keywords}\n
+
* 描述: ${article.description}\n
+
---\n
+
$('#results-container').append('