
本文档介绍如何使用 PHP 和 AJAX 对通过 POST 方法获取的搜索结果进行 A-Z 排序。我们将创建一个表单,保存 POST 数据,并使用 PHP 函数对医生列表进行排序,最终通过 AJAX 异步更新页面显示排序后的结果,提升用户体验。
首先,在 search.php 页面中添加一个表单,用于触发排序操作。该表单包含一个隐藏域,用于保存原始的 POST 数据,以及一个排序按钮。
<form id="sortForm" method="post">
<input type="hidden" name="original_post_data" value="<?php echo htmlspecialchars(json_encode($_POST)); ?>">
<button type="button" id="sortButton" class="btn btn-primary">按 A-Z 排序</button>
</form>说明:
接下来,使用 JavaScript 代码监听排序按钮的点击事件,并使用 AJAX 发送请求到服务器。
立即学习“PHP免费学习笔记(深入)”;
PbootCMS是一款高效、简洁、强悍的开源PHP企业网站开发建设管理系统。 PbootCMS 1.1.8 更新日志:2018-08-07 1.修复提交表单多选字段接收数据问题; 2.修复登录过程中二次登陆在页面不刷新时验证失败问题; 3.新增搜索结果fuzzy参数来控制是否模糊匹配; 4.新增父分类,顶级分类名称及链接独立标签,具体见手册; 5.新增内容多图拖动排序功能。
243
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.6.0/jquery.min.js"></script>
<script>
$(document).ready(function(){
$("#sortButton").click(function(){
var originalPostData = $("input[name='original_post_data']").val();
$.ajax({
url: "sort_doctors.php", // 排序处理脚本
type: "POST",
data: {
sort: 'az', // 排序方式
original_post_data: originalPostData
},
success: function(data){
// 将排序后的结果更新到页面
$(".container").html(data); // 假设医生列表在 class="container" 的元素中
},
error: function(xhr, status, error) {
console.error("AJAX 请求失败: " + status + " - " + error);
}
});
});
});
</script>说明:
创建 sort_doctors.php 文件,用于处理排序逻辑。
<?php
include 'models/doctors.class.php';
$search = new doctors();
if(isset($_POST['sort']) && $_POST['sort'] == 'az' && isset($_POST['original_post_data'])) {
$originalPostData = json_decode($_POST['original_post_data'], true);
// 模拟 POST 请求
$_POST = $originalPostData;
$s = $search->filterDoctors($_POST);
// 对结果集按照 full_name 字段进行 A-Z 排序
usort($s, function($a, $b) {
return strcmp($a['full_name'], $b['full_name']);
});
// 输出排序后的结果
foreach($s as $row1){
?>
<a href="therapist.php?id=<?php echo $row1['User_ID']; ?>" class="text-decoration-none">
<div class="therapistCardOne mx-2 popins-font my-2">
<div class="row py-2">
<div class="col-3 g-0">
<div class="imgW text-center g-0 ps-2">
<img src="assets/images/006.png" class="img-fluid ms-2" alt="" width="70px"
height="80px">
</div>
</div>
<div class="col-8 g-0 ps-2">
<span class="span1"><?php echo $row1['full_name'];?></span>
<span class="ps-2">
<i class="bi bi-star-fill icon-ccc"></i>
<i class="bi bi-star-fill icon-ccc"></i>
<i class="bi bi-star-fill icon-ccc"></i>
<i class="bi bi-star-fill icon-ccc"></i>
<i class="bi bi-star icon-ccc"></i></span><br>
<span class="span2">Location :
<?php echo $row1['location'];?>
</span> <br>
<span class="span3"><i class="bi bi-clock icon-cc"></i> 12:00pm - 16:00pm</span> <span
class="span4 ps-2"><i class="bi bi-geo-alt icon-cc"></i> Zurich New Clinic</span>
</div>
<div class="col-1 g-0 pe-2">
<i class="bi bi-three-dots-vertical"></i>
</div>
</div>
</div>
</a>
<?php
}
} else {
echo "Invalid request.";
}
?>说明:
通过以上步骤,我们可以实现搜索结果按字母顺序排序的功能。该方案使用 AJAX 异步更新页面,避免了页面刷新,提升了用户体验。同时,该方案也具有一定的灵活性,可以方便地扩展到其他排序方式。
以上就是实现搜索结果按字母顺序排序的 PHP 教程的详细内容,更多请关注php中文网其它相关文章!
PHP怎么学习?PHP怎么入门?PHP在哪学?PHP怎么学才快?不用担心,这里为大家提供了PHP速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号