ajax简单实现分页及多条件查询功能
以下是一个使用jQuery和PHP实现的简单AJAX分页和多条件查询功能的示例。
前端HTML和JavaScript代码:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>分页与搜索示例</title>
<script src="https://code.jquery.com/jquery-3.6.0.min.js"></script>
</head>
<body>
<div>
<input type="text" id="search" placeholder="搜索关键词">
<button id="searchBtn">搜索</button>
</div>
<div id="pagination">
<!-- 分页按钮将被动态插入此处 -->
</div>
<table id="dataTable">
<!-- 数据将被动态插入此处 -->
</table>
<script>
$(document).ready(function() {
loadData(1); // 默认加载第一页数据
$('#searchBtn').click(function() {
loadData(1); // 重置到第一页并根据搜索条件加载数据
});
$('#pagination').on('click', '.page-link', function() {
var page = $(this).data('page');
loadData(page); // 根据点击的页码加载数据
});
});
function loadData(page) {
var search = $('#search').val();
$.ajax({
url: 'server.php',
type: 'GET',
data: { page: page, search: search },
success: function(data) {
var result = JSON.parse(data);
$('#dataTable').html(result.tableData); // 更新表格数据
$('#pagination').html(result.pagination); // 更新分页按钮
},
error: function() {
alert('加载数据失败!');
}
});
}
</script>
</body>
</html>
后端PHP代码 (server.php
):
<?php
$page = $_GET['page'] ?? 1;
$search = $_GET['search'] ?? '';
// 模拟数据库查询,实际应用中应该从数据库获取
$results = []; // 假设这是从数据库获取的数据数组
// 模拟分页计算
$pageSize = 10;
$totalResults = count($results);
$totalPages = ceil($totalResults / $pageSize);
$start = ($page - 1) * $pageSize;
$end = $start + $pageSize;
// 根据搜索条件筛选结果
if ($search !== '') {
$results = array_filter($results, function ($value) use ($search) {
return strpos($value, $search) !== false;
});
}
// 分页获取当前页的结果
$paginatedResults = array_slice($results, $start, $end - $start);
// 生成表格数据
$tableData = '';
foreach ($paginatedResults as $result) {
$tableData .= '<tr><td>' . htmlspecialchars($result) . '</td></tr>';
}
// 生成分页按钮
$pagination = '';
for ($i = 1; $i <= $totalPages; $i++) {
评论已关闭