安静
PHP技术博客

100730 php多条件混合筛选的简单实现

如图点击以后多条件混合筛选做起来 实际上有很多种方法,这是我见过实现较为轻松的方法,特转过来给大家共享:

实例代码如下 保存为PHP就可以了 文件名是8.php

<?php
$conditions = array('price','color','metal');//要进行筛选的字段放在这里
$price = $color = $metal='';//先给需要筛选的字段赋空值,这些值将输出到页面的hidden fileds 中
//以下循环给已经进行的筛选赋值,以便能够在下一次筛选中保留
foreach($conditions as $value){
if(isset($_GET[$value])){
$value = $_GET[$value];
}
}
//以下是演示输出$_GET数据
echo '<pre>';
print_r($_GET);
echo '</pre>';
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>分类筛选演示</title>
<style type="text/css">
body{font-size:14px;font-family:Tahoma,"宋体"}
</style>
<script type="text/javascript">
function Filter(a,b){
var $ = function(e){return document.getElementById(e);}
var ipts = $('filterForm').getElementsByTagName('input'),result=[];
for(var i=0,l=ipts.length;i<l;i++){
if(ipts[i].getAttribute('to')=='filter'){
result.push(ipts[i]);
}
}
if($(a)){
$(a).value = b;
for(var j=0,len=result.length;j<len;j++){
if(result[j].value==''){
result[j].parentNode.removeChild(result[j]);
}
}
document.forms['filterForm'].submit();
}
return false;
}
</script>
</head>
<body>
<form id="filterForm" action="index.php" method="GET">
<!--
form的id 要和程序里统一
为避免与其他使用的隐藏域冲突,添加了to属性
以下是筛选字段隐藏域
需要筛选的隐藏域需要加 to 属性
-->
<input to="filter" type="hidden" id="price" name="price" value="<?=$price?>" />
<input to="filter" type="hidden" id="color" name="color" value="<?=$color?>" />
<input to="filter" type="hidden" id="metal" name="metal" value="<?=$metal?>" />
</form>
<!--
要筛选的属性可以由程序生成,注意规律!
-->
价格:<a href="javascript:Filter('price','100-1000');">100-1000</a>
<a href="javascript:Filter('price','1001-2000');">1001-2000</a>
<a href="javascript:Filter('price','2001-3000');">2001-3000</a><br/>
颜色:<a href="javascript:Filter('color','red');">红色</a>
<a href="javascript:Filter('color','blue');">蓝色</a><br />
材质:<a href="javascript:Filter('metal','gold');">纯金</a>
<a href="javascript:Filter('metal','silver');">纯银</a><br />
</body>
</html>

原文摘自http://bbs.blueidea.com/viewthread.php?tid=2992446  作者 fonqing

赞(0) 打赏
未经允许不得转载:AJ's Blog » 100730 php多条件混合筛选的简单实现
分享到: 更多 (0)

评论 2

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址
  1. #-49

    都几号了,还不更新

    妮裳神话9年前 (2010-08-02)
  2. 忙撒 不像您 至少我更新的比你勤快多了

    可 乐烟9年前 (2010-08-02)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏