在我的网站上,我有一个页面来展示推荐信。我写了这段代码来显示我所有来自数据库的推荐信。
这是我到目前为止的代码:
while ( $row = mysqli_fetch_array( $r, MYSQLI_ASSOC)) {
$testimonial = $row['testimonial'];
//echo $testimonial;
$mytestimonial = nl2br($testimonial);
$city = $row['city_name'];
$name = $row['name'];
$url = $row['web_address'];
$imageName = $row['image_name'];
$type = $row['membership_type'];
} 有了这段代码,我可以把我所有的推荐信都放到这个页面上。这对我来说很好用。我的问题是现在我需要根据推荐信的类型来过滤我的推荐信。我的数据库里有3种不同的推荐信。(导师、学院、学生)
我将使用一个选择框来过滤数据。当从选择框中选择一个选项时,我需要根据所选类型显示推荐信。
<div class="filter-box">
<div id="select_box">
<form method="post" action="">
<div class="variation2">
<label>Filter By</label>
<select class="select">
<option>Tutor</option>
<option>Institute</option>
<option>Student</option>
</select>
</div>
</form>
</div>
</div>有没有人能带我往这个方向走?
谢谢
发布于 2013-03-05 21:42:25
当用户选择了3个选项中的一个并显示所需的证明后,为什么不动态地重新加载选择框(使用AJAX)呢?我想这将解决您的问题。
发布于 2013-03-05 21:43:58
因此,您需要根据其类型选择推荐信
$q = "SELECT testimonial, city_name, name, web_address, image_name, membership_type
FROM testimonials
INNER JOIN city ON city.city_id = testimonials.city_id
WHERE type = '$type'
ORDER BY date_added DESC LIMIT $start, $display";现在,您还希望从用户处获取类型
<select name="type" class="select">有了帖子
$type = $_POST['type'];在更改时自动提交表单示例
Javascript:
<script type="text/javascript">
function submitform(){
document.frmType.submit();
}
</script>表格:
<form name="frmType" method="post" action="">
<select name="type" class="select" onchange="submitform()">有关更多示例,请参阅here
发布于 2013-03-05 21:52:21
你有几个选择。第一个是使用ajax。第二步是提交表单onchange或onsubmit:
<select class="select" name="type" onchange="document.forms[0].submit();">
<option value="Tutor">Tutor</option>
<option value="Institute">Institute</option>
<option value="Student">Student</option>
</select>和您的查询:
$type = '';
if(!empty($_POST) && isset($_POST[type])){
$type = " WHERE testimonials.type = '".$_POST[type]."'";
}
$q = "SELECT testimonial, city_name, name, web_address, image_name, membership_type
FROM testimonials
INNER JOIN city ON city.city_id = testimonials.city_id
".$type."
ORDER BY date_added DESC LIMIT $start, $display";当然,一定要检查表单是否已经提交。
https://stackoverflow.com/questions/15225213
复制相似问题