首页 > 开发 > PHP > 正文

php实现多级分类筛选程序代码

2024-05-04 21:59:55
字体:大 中 小
来源:转载
供稿:网友

现在这种多选择功能在很多网站都有,如现在很多电商网站都有N个条件选择了,下面小编为各位介绍一个简单的多级分类筛选实现方法,主要注意这边有一个 $$这是变量的变量,以后估计会常用这个做开发,代码如下:

  1. <?php 
  2.   
  3. $conditions = array('price','color','metal');//要进行筛选的字段放在这里 
  4.   
  5. $price = $color = $metal='';//先给需要筛选的字段赋空值,这些值将输出到页面的hidden fileds 中 
  6.   
  7. //以下循环给已经进行的筛选赋值,以便能够在下一次筛选中保留 
  8.   
  9. foreach($conditions as $value){ 
  10.   
  11.     if(isset($_GET[$value])){  
  12.         $$value = $_GET[$value]; 
  13.     } 
  14.   
  15. } 
  16.   
  17. //以下是演示输出$_GET数据 
  18.   
  19. echo '<pre>'; 
  20.   
  21. print_r($_GET); 
  22.   
  23. echo '</pre>'; 
  24.   
  25. ?> 
  26.   
  27. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
  28.   
  29. <html xmlns="http://www.w3.org/1999/xhtml"> 
  30.   
  31. <head> 
  32.   
  33. <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 
  34.   
  35. <title>分类筛选演示</title> 
  36.   
  37. <style type="text/css"> 
  38.   
  39. body{font-size:14px;font-family:Tahoma,"宋体"} 
  40.   
  41. </style> 
  42.  //开源软件:Vevb.com 
  43. <script type="text/javascript"> 
  44.   
  45. function Filter(a,b){ 
  46.   
  47.     var $ = function(e){return document.getElementById(e);} 
  48.   
  49.     var ipts = $('filterForm').getElementsByTagName('input'),result=[]; 
  50.   
  51.     for(var i=0,l=ipts.length;i<l;i++){ 
  52.   
  53.         if(ipts[i].getAttribute('to')=='filter'){ 
  54.   
  55.            result.push(ipts[i]); 
  56.   
  57.        } 
  58.   
  59.     } 
  60.   
  61.    if($(a)){ 
  62.   
  63.         $(a).value = b; 
  64.   
  65.         for(var j=0,len=result.length;j<len;j++){ 
  66.   
  67.            if(result[j].value==''){ 
  68.   
  69.                result[j].parentNode.removeChild(result[j]); 
  70.   
  71.            } 
  72.   
  73.        } 
  74.   
  75.         document.forms['filterForm'].submit(); 
  76.   
  77.     } 
  78.   
  79.     return false; 
  80.   
  81. } 
  82.   
  83. </script> 
  84.   
  85. </head> 
  86.   
  87. <body> 
  88.   
  89. <form id="filterForm" action="test.php" method="get"> 
  90.   
  91. <!-- 
  92.   
  93. form的id 要和程序里统一 
  94.   
  95. 为避免与其他使用的隐藏域冲突,添加了to属性 
  96.   
  97. 以下是筛选字段隐藏域 
  98.   
  99. 需要筛选的隐藏域需要加 to 属性 
  100.   
  101. --> 
  102.   
  103. <input to="filter" type="hidden" id="price" name="price" value="<?=$price?>" /> 
  104.   
  105. <input to="filter" type="hidden" id="color" name="color" value="<?=$color?>" /> 
  106.   
  107. <input to="filter" type="hidden" id="metal" name="metal" value="<?=$metal?>" /> 
  108.   
  109. </form> 
  110.   
  111. <!-- 
  112.   
  113. 要筛选的属性可以由程序生成,注意规律! 
  114.   
  115. --> 
  116.   
  117. 价格:<a href="javascript:Filter('price','');">不限</a> 
  118. <a href="javascript:Filter('price','100-1000');">100-1000</a> 
  119.   
  120.       <a href="javascript:Filter('price','1001-2000');">1001-2000</a> 
  121.   
  122.      <a href="javascript:Filter('price','2001-3000');">2001-3000</a><br/> 
  123.   
  124. 颜色:<a href="javascript:Filter('color','红色');">红色</a> 
  125.   
  126.       <a href="javascript:Filter('color','蓝色');">蓝色</a><br /> 
  127.   
  128. 材质:<a href="javascript:Filter('metal','纯金');">纯金</a> 
  129.   
  130.       <a href="javascript:Filter('metal','纯银');">纯银</a><br /> 
  131.   
  132. </body> 
  133.   
  134. </html>

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表