多条件筛选功能常用在图片、装修、机械设备、商城网站等,一般筛选的条件是用户较关注的项目,没必要什么条件都加入。DedeCMS多条件筛选PHP开发并不带有删除所选条件功能,PHP筛选和JS筛选原理不一样,实现起来并不复杂。
装修效果图实现多条件联动筛选带删除功能分享给大家。
效果参考图
点击“x”符号即可删除筛选条件。
先参考文章《织梦多条件筛选以筛选词为SEO标题教程》,下载两个必要的文件
修改下载后的extend.func.php文件,找到
}
}
}
}
echo $dede_addonfields;
}
在这段代码之前(switch条件case 2 的下面增加case 3)增加如下代码:
case 3:
$addonfields_items = explode(",",$ctag->GetAtt('default'));
for ($i=0; $i<count($addonfields_items); $i++)
{
$href = stripos($filterarr,$ctag->GetName() . '=' ) ? str_replace("=" . $fields_value,"=" . urlencode($addonfields_items[$i]),$filterarr) : $filterarr . '&' . $ctag->GetName() . '=' . urlencode($addonfields_items[$i] );//echo $href;
$dede_addonfields .= $fields_value != urlencode($addonfields_items[$i]) ? '' : '<span class="tiao">' . $addonfields_items[$i];
}
$dede_addonfields .= (preg_match("/&".$ctag->GetName()."=/is",$filterarr,$regm) ? '<a title="删除" href="' . $GLOBALS['cfg_basehost'] . str_replace("&" . $ctag->GetName() . "=" . $fields_value,"",$filterarr) . '"> x </a></span>' : '');
break;
模板部分PHP调用
增加未筛选时不显示“筛选条件”字样,用PHP判断自定义字段不为空则显示。
01 |
<p class= "textc yixuan" > |
06 |
if ($a != '' || $b != '' || $c != '' ) |
08 |
AddFilter(7,3, 'zxfg,hx,zxmj' ); //“7”是自定义字段(橙色部分)所在的频道模型ID,“3”是上面修改部分,下面同理; |
11 |
<div class= "shaixuanbox" > |
13 |
AddFilter(7,1, 'zxfg,hx,zxmj' ); |
|
CSS样式
1 |
.shaixuanbox{width:100%;height:auto;margin:0 auto 10px;border-bottom:1px solid |
2 |
.shaixuan{padding:10px;text-align:left;font-size:14px;line-height:14px} |
3 |
.shaixuan a{margin:0 6px;color: |
4 |
.shaixuan a:hover{color: |
5 |
.shaixuan .hover,.shaixuan span{padding:0 5px;color: |
6 |
.tiao{position:relative;padding:0 20px 0 5px;border:1px solid |
7 |
.tiao a{position:absolute;right:5px; top :0;font-size:20px;color: |
8 |
.tiao a:hover{text-decoration:none;} |
|