PHP筛选功能是在济南网站建设中经常遇到的一个功能,在一些门户网、行业网以及部分企业网站中都会见到。在很多的开源CMS里也有自带的一些筛选标签,大多情况筛选标签都是无法满足我们实际的需求,这时就需要通过二次开发,单独写一个筛选功能的程序了,具体的实现方法和思路如下:
一、组建筛选代码,通过PHP创建筛选URL
构建筛选查询的URL是实现筛选查询最关键的一步,也是最麻烦的一步,具体代码如下:
①、第一个筛选选项代码和详细介绍如下:
<?php
$t = $_GET; //定义GET
unset($t['jiedao']); //重设置在URL中获取的"jiedao"参数,如果URL中有多个参数值,只需要获取一个就行,这仅限于一行筛选,如果是两行筛选那就是写两边GET
$urlvar1 = $t ? http_build_query($t).'&' : ''; //关键步骤,构建URL,放置重复点击URL无限增加
$zurl = '/corporation.php?'; //固定URL地址
if($_GET[diqus]==10){
echo "<a href='".$zurl.$urlvar1."'";
if($_GET[jiedao]==''){echo "class='active'";}
echo ">不限</a>";
echo "<a href='".$zurl.$urlvar1."jiedao=0'"; //注意看清筛选URL组成的格式!!
if($_GET[jiedao]!=''&&$_GET[jiedao]==0){echo "class='active'";}
echo ">解放路街道</a>";
?>
前台效果如下图:
URL效果如下图:
②、第二个筛选代码和详细介绍如下:
<?php
$t = $_GET; //定义GET
unset($t['catids']); //重设置在URL中获取的"jiedao"参数,如果URL中有多个参数值,只需要获取一个就行,这仅限于一行筛选,如果是两行筛选那就是写两边GET
$urlvar1 = $t ? http_build_query($t).'&' : ''; //关键步骤,构建URL,放置重复点击URL无限增加
$zurl = '/corporation.php?'; //固定URL地址
if($_GET[catids]==10){
echo "<a href='".$zurl.$urlvar1."'";
if($_GET[catids]==''){echo "class='active'";}
echo ">不限</a>";
echo "<a href='".$zurl.$urlvar1."catids=0'"; //注意看清筛选URL组成的格式!!
if($_GET[catids]!=''&&$_GET[catids]==0){echo "class='active'";}
echo ">企业工厂</a>";
?>
前台效果如下图:
URL效果如下图:
注:以上代码最重要部分,unset($t['catids']); 这句里面获取的URL参数的值,是进行当前筛选所需要在URL中添加的字段,这个一定要注意,否则会出错。
二、获得URL参数值,查询数据库返回数据
构建了筛选的URL之后,就可以使用SQL查询语句对数据库进行查询了,这个很简单,相信大家都知道怎么去写了,我的查询代码如下:
<?php
$diqus = $_GET[diqus] ? "AND a.diqus = '$_GET[diqus]'" : "";
$jiedao = $_GET[jiedao] ? "AND a.jiedao = '$_GET[jiedao]'" : "";
$fenid = $_GET[fenid] ? "AND a.fenid = '$_GET[fenid]'" : "";
$catids = $_GET[catids] ? "AND a.catid = '$_GET[catids]'" : "";
$sql = empty($cate_limit) ? "SELECT a.* FROM `{$db_mymps}member` AS a WHERE 1 {$diqus}{$jiedao}{$catids}{$level_limit} {$cate_limit}{$city_limit} ORDER BY a.levelid DESC,a.jointime DESC" : "SELECT a.* FROM `{$db_mymps}member` AS a LEFT JOIN `{$db_mymps}member_category` AS b ON a.userid = b.userid WHERE 1 {$diqus}{$jiedao}{$catids}{$level_limit} {$cate_limit}{$area_limit} ORDER BY a.levelid DESC,a.jointime DESC";
?>
返回数据前台效果如下:
三、写到最后:
用php实现筛选查询功能所用的代码其实不多,但是会在实际写代码的过程中遇到一些问题,不过只要我们细心调整,就会很快实现这个功能。在济南网站建设的客户里,有大多客户都会觉得在网站中加入筛选的功能能够大大提升用户的体验度,这点尤其表现在服装行业或对于公司产品属性较多的行业里面。如果我们为客户实现了这个功能,并测试没有任何问题,那么相信能够在一定程度上提高签单率和提高客户对我们公司的信任度的。
您可能对以下文章也感兴趣:
济南网站建设中多个jquery发生冲突,以及jquery和其他JS冲突的解决方法