
本文介绍如何在使用POST方法获取医生列表后,通过PHP和AJAX实现A-Z排序功能。首先,在search.php页面创建一个表单,保存用于重定向到该页面的POST数据。然后,使用PHP函数对医生数据进行排序,并通过AJAX将排序后的结果动态更新到页面上,从而实现无需刷新页面的排序体验。
首先,我们需要在search.php页面添加一个表单和一个用于触发排序的按钮。同时,需要将当前的医生数据保存下来,以便进行排序。
<?php
include 'models/doctors.class.php';
// error_reporting(0);
$search = new doctors();
$doctors = []; // 初始化医生数组
if(isset($_POST['submit'])){
$doctors = $search->filterDoctors($_POST); // 将结果赋值给 $doctors
}
?>
<!doctype html>
<html lang="en">
<head>
<!-- 头部信息省略 -->
<title>Healthcare</title>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.6.0/jquery.min.js"></script>
</head>
<body>
<!-- 其他HTML代码省略 -->
<section>
<div class="container">
<button id="sort-az" class="btn btn-primary">Sort A-Z</button>
<div id="doctor-list">
<?php
if (!empty($doctors)) {
foreach($doctors 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-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>
</div>
</a>
<?php
}
} else {
echo "<p>No doctors found.</p>";
}
?>
</div>
</div>
</section>
<script>
$(document).ready(function(){
$("#sort-az").click(function(e){
e.preventDefault();
$.ajax({
url: "sort_doctors.php", // 创建一个新的PHP文件来处理排序
type: "POST",
data: <?php echo json_encode($_POST); ?>, // 发送原始的POST数据
success: function(data){
$("#doctor-list").html(data); // 更新医生列表
}
});
});
});
</script>
</body>
</html>关键修改:
创建一个名为 sort_doctors.php 的文件,用于处理排序逻辑。
立即学习“PHP免费学习笔记(深入)”;
<?php
include 'models/doctors.class.php';
$search = new doctors();
$doctors = $search->filterDoctors($_POST);
// 排序函数
usort($doctors, function($a, $b) {
return strcmp($a['full_name'], $b['full_name']);
});
// 生成HTML
$html = '';
foreach($doctors as $row1){
$html .= '<a href="therapist.php?id=' . $row1['User_ID'] . '" class="text-decoration-none">';
$html .= '<div class="therapistCardOne mx-2 popins-font my-2">';
$html .= '<div class="row py-2">';
// 医生信息显示
$html .= '<div class="col-8 g-0 ps-2">';
$html .= '<span class="span1">' . $row1['full_name'] . '</span>';
$html .= '<span class="ps-2">';
$html .= '<i class="bi bi-star-fill icon-ccc"></i>';
$html .= '<i class="bi bi-star-fill icon-ccc"></i>';
$html .= '<i class="bi bi-star-fill icon-ccc"></i>';
$html .= '<i class="bi bi-star-fill icon-ccc"></i>';
$html .= '<i class="bi bi-star icon-ccc"></i></span><br>';
$html .= '<span class="span2">Location :';
$html .= $row1['location'];
$html .= '</span> <br>';
$html .= '<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>';
$html .= '</div>';
$html .= '</div>';
$html .= '</div>';
$html .= '</a>';
}
echo $html;
?>关键步骤:
通过以上步骤,我们成功实现了使用PHP和AJAX对POST方法获取的医生列表进行A-Z排序的功能。这种方法可以提供更好的用户体验,因为用户无需刷新页面即可看到排序后的结果。同时,这种方法也具有较高的灵活性,可以根据实际需求进行定制和扩展。
以上就是使用PHP和AJAX对POST方法获取的医生列表进行A-Z排序的详细内容,更多请关注php中文网其它相关文章!
PHP怎么学习?PHP怎么入门?PHP在哪学?PHP怎么学才快?不用担心,这里为大家提供了PHP速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号