欢迎访问 水平网    今天是:2017年11月22日 注册 | 登录 | 订阅 | 收藏
>> 网页编程 >> PHP技术 >> PHP中关于多条件筛选时URL参数问题
推荐文章
热点文章
专题
JQuery框架
Prototype.js
HTML5

PHP中关于多条件筛选时URL参数问题

作者:goaler,  来源:水平网,  阅读:1487,  发布时间:2014-09-01 【放入收藏夹

想必大家都见过淘宝上面的多条件筛选,这里我就不多重复了,没见过就自己去淘宝上随便逛逛吧(有点为淘宝做广告了——可惜人家都用不着广告了),这几天我玩一个影视网站的时候,想筛选影片,类型跟淘宝差不多,只不过我没有那么多的参数罢了,只有三个:类型、地区、年代。如下:

<?
$movieStartYear = 1990;//开始年代
$movieSortTypeList = '动作,科幻,惊悚,战争,喜剧,悬疑,爱情,历史,记录,冒险,灾难,动画,剧情,家庭,西部,音乐,犯罪,恐怖,古装,武侠,综艺,体育,电视剧'; //分类
$movieSortLocation = '中国大陆,中国香港,中国台湾,美国,法国,英国,德国,韩国,日本,意大利,西班牙,加拿大,印度,澳大利亚,俄罗斯,爱尔兰,菲律宾,印尼,马来西亚'; //地区
 
$strTypeList = '';
$array_movieSortType = split(',',$movieSortTypeList);
for($i = 0;$i < count($array_movieSortType) ;$i++ ) {
 $strTypeList .= '<a href="'.seturl('sortbytype',urlencode($array_movieSortType[$i]),false).'">'.$array_movieSortType[$i].'</a>'."\n";
}

$strLocationList = '';
$array_movieSortLocation = split(',',$movieSortLocation);
for($i = 0;$i < count($array_movieSortLocation) ;$i++ ) {
 $strLocationList .= '<a href="'.seturl('sortbyarea',urlencode($array_movieSortLocation[$i]),false).'">'.$array_movieSortLocation[$i].'</a>'."\n";
}

$strYearList = '';
for($i = date('Y');$i >= $movieStartYear  ;$i--){
 $strYearList .= '<a href="'.seturl('sortbyyear',$i,false).'">'.$i.'</a>';
}

 

function seturl($squerystring,$svalue,$unset) {
 $url_string = rawurldecode($_SERVER['QUERY_STRING']);
 $url_string = substr($url_string, (strpos($url_string, '?')));
 parse_str($url_string, $url);

 //print_r($url);
 if (array_key_exists($squerystring,$url)) {//如果已经存在这个参数,那么删除这个参数,后边进行更新
  unset($url[$squerystring]);
 }
 /*这里如果你要过滤不需要的参数,按下面这个方法删除参数即可
 if (array_key_exists('q',$url)) {
  unset($url['q']);
 }
 if (array_key_exists('page',$url)) {
  unset($url['page']);
 }
 */
 $newurl = array();
 
 foreach ($url as $field => $value) {
  array_push($newurl,$field.'='.rawurlencode($value));
 }
 array_push($newurl,$squerystring.'='.rawurlencode($svalue));
 //print_r($newurl);
 if ($unset === true) {//取消指定的筛选条件
  unset($newurl[array_search($squerystring.'='.rawurlencode($svalue),$newurl)]);
 }
 for ($i = 0; $i < count($newurl) ;$i++ ) {
  $str .= $newurl[$i];
  if ($i == 0) {
   $str = '?'.$str;
  }
  if ($i < count($newurl) - 1) {
   $str .= '&';
  }
 }
 $url = 'index.php'.$str;
 return $url;
}
?>

如果要取消某个参数,按如下链接:
<a title="点击取消该项筛选条件" href="<?=seturl('sortbytype',$sortbytype,true)?>"><?=$_GET['sortbytype'])?></a>

演示页请访问http://www.92798.com/movie/index.php,左侧三项筛选条件。

PHP水平有限,请多多指教了!

TGAS:多条件筛选URL参数
评论【共有0条评论】查看所有评论
称呼:(*)   邮箱:   QQ:   验证码: 看不清楚?点击刷新验证码