如果您想动态过滤结果,您将需要研究 AJAX 解决方案(如果您正在处理可能有数千个结果)或使用 Javascript/jQuery 来根据结果类型切换结果的可见性. 一个简单的解决方案就是使用 jQuery。
在您的 search.php 模板中:
<form action="" method="POST">
<input class="radioToggle" type="radio" name="post_type" value="type1" />Filter 1<br/>
<input class="radioToggle" type="radio" name="post_type" value="type2" />Filter 2<br/>
<input class="radioToggle" type="radio" name="post_type" value="type3" />Filter 3<br/>
</form>
<div class="result type1">
result of type 1....
</div>
<div class="result type2">
result of type 2....
</div>
<div class="result type2">
result of type 2....
</div>
<div class="result type3">
result of type 3....
</div>
<div class="result type3">
result of type 3....
</div>
<div class="result type3">
result of type 3....
</div>
<script type="text/javascript">
jQuery(document).ready(function($))
{
$(".radioToggle").click(function()
{
$(".result."+$(this).attr("value")).css("display", "block");
$(".result:not(."+$(this).attr("value")+")").css("display", "none");
});
});
</script>
这是未经测试的,我个人会完全避免这样做。我个人认为应该使用 PHP 预先过滤搜索结果,而不是之后使用 Javascript。但是,如果这对您的 UI 来说是必要的,那么这应该可以帮助您入门。
请记住,为了使用此方法,您的主题需要安装 jQuery 或将其加入队列。