首页 » Web前端 » jqueryphp分类筛选技巧_ThinkPHP中运用jQuery实现多前提组合筛选

jqueryphp分类筛选技巧_ThinkPHP中运用jQuery实现多前提组合筛选

访客 2024-12-13 0

扫一扫用手机浏览

文章目录 [+]

多条件组合筛选,可以实现用户根据多个条件灵巧组合查询,最经典的案例便是购物网站上的组合筛选。

利用 ThinkPHP 编写多条件组合筛选不是特殊好实现,最直接的方法便是利用 js 赞助。
本案例利用的是 jquery。

jqueryphp分类筛选技巧_ThinkPHP中运用jQuery实现多前提组合筛选

这里要实现的功能如下:

jqueryphp分类筛选技巧_ThinkPHP中运用jQuery实现多前提组合筛选
(图片来自网络侵删)

多组筛选分类相互不冲突;

选择的条件都会高亮显示(增加样式)

URL对应发生变革

办理的思路是,利用 jquery ,对每次点击进行判断,利用 ThinkPHP 方便的地址常量的输出,直接天生对应的 URL,然后通过 jquery 跳转。

以是关键便是每次点击按钮天生精确的URL,并且利用 jquery 打开它。

事先复习一下 ThinkPHP 的常量输出的方法:

代码表示阐明__URL__天生当前方法的URL{:I('xx')}在页面中输出URL中通报的相应的参数值

首先是实现给点击筛选条件高亮,详细实现思路与我之前编写的 ThinkPHP制作导航高亮和当前页高亮显示的最佳方法 类似。
事先在筛选条件上做标记,利用 {:I('xx')} 可以在页面中得到 URL 中的参数值,然后根据参数值和标记比拟,给当前的条件增加 css ,达到高亮的效果。

比如,我的筛选 HTML 编写如下:

<divclass=\"大众p_col_s1\公众>

活动分类:

<ahref=\公众javascript:filter('col','')\公众class=\"大众p_col\"大众id=\"大众col_all\"大众>全部</a>

<volistname=\公众res2\"大众id=\"大众vo2\"大众>

<ahref='javascript:filter(\"大众col\"大众,\"大众{$vo2.colid}\"大众);'class=\公众p_col\"大众id=\"大众col_{$vo2.colid}\公众>{$vo2.colname}</a>

</volist>

</div>

<divclass=\"大众p_col_s1\公众>

筛选条件:

<ahref='javascript:filter(\公众tl\公众,\"大众\"大众);'class=\"大众p_col\"大众id=\"大众tl2\公众>查看全部</a>

<ahref='javascript:filter(\公众tl\"大众,\"大众1\公众);'class=\"大众p_col\"大众id=\公众tl1\"大众>只看未过期</a>

</div>

<divclass=\"大众p_col_s1\"大众>

安全分类:

<ahref=\公众javascript:filter('s','')\公众class=\公众p_col\"大众id=\"大众s_all\"大众>全部</a>

<ahref='javascript:filter(\"大众s\公众,\"大众0\"大众);'class=\"大众p_col\公众id=\公众s0\"大众>安全</a>

<ahref='javascript:filter(\公众s\公众,\公众1\公众);'class=\"大众p_col\公众id=\"大众s1\公众>一样平常</a>

<ahref='javascript:filter(\"大众s\"大众,\"大众2\"大众);'class=\"大众p_col\"大众id=\公众s2\"大众>危险</a>

</div>

然后编写 jquery 代码,由于须要页面打开就运行,以是须要把代码写在 $(function(){…}) 中

$(function() {

var colid = \公众{:I('col')}\"大众;

if (colid != \"大众\"大众) {

$(\"大众#col_\"大众 + colid).addClass('p_col_hover');

} else {

$(\"大众#col_all\"大众).addClass('p_col_hover');

}

var tl = \"大众{:I('tl')}\"大众;

if (tl == \"大众1\公众) {

$(\"大众#tl\"大众 + tl).addClass('p_col_hover');

} else {

$(\"大众#tl2\"大众).addClass('p_col_hover');

}

var s = \"大众{:I('s')}\"大众;

if (s != \公众\公众) {

$(\"大众#s\公众 + s).addClass('p_col_hover');

} else {

$(\公众#s_all\公众).addClass('p_col_hover');

}

})

至此,已经实现了高亮。

接下来是实现组装 URL 并且打开了。
我对每一个筛选条件的 URL 进行了修正,将其指向了 javascript 方法 filter(),方法代码如下:

function filter(a, b) {

var str = \"大众__URL__/po/\公众;

var colid = \"大众{:I('col')}\"大众;

if (colid != \"大众\"大众 && a != \"大众col\公众) {

str = str + \"大众col/\"大众 + colid + \公众/\"大众;

}

var tl = \公众{:I('tl')}\"大众;

if (tl != \"大众\"大众 && a != \"大众tl\"大众) {

str = str + \公众tl/\"大众 + tl + \"大众/\"大众;

}

var s = \"大众{:I('s')}\公众;

if (s != \"大众\公众 && a != \公众s\"大众) {

str = str + \"大众s/\公众 + s + \"大众/\公众;

}

if (b != \公众\"大众) {

str = str + a + \"大众/\"大众 + b + \公众/\"大众;

}

window.location.href = str;

}

个中两个参数,a 和 b ,a 参数用来识别筛选组,b用来识别选项组里的选项。
方法逐个试图获取 URL 中的参数,如果有,则追加到临时字符串中,如果没有则跳过,为了避免重复,在判断中还增加了判断是否是同一组,如果是同一组,则不会追加,末了走完在末了增加新点击的参数,终极组合成为目标 URL ,进行跳转。

终极实现的效果如下:

标签:

相关文章

大数据易理,新时代的智慧之光

随着信息技术的飞速发展,大数据时代已经到来。大数据以其海量、快速、多样等特点,深刻地改变着我们的生活方式、思维方式乃至社会运行模式...

Web前端 2024-12-15 阅读0 评论0

大数据时代,黄勇的探索与创新

在当今这个信息化、数字化迅速发展的时代,大数据已经成为推动社会进步的重要力量。而在这个领域中,我国学者黄勇以其卓越的研究成果和独特...

Web前端 2024-12-15 阅读0 评论0

大数据时代,叶良的智慧探索与方法

随着信息技术的飞速发展,大数据已经成为当今社会的一个重要特征。在这个大数据时代,我国众多优秀的企业家和研究者纷纷投身其中,为我国大...

Web前端 2024-12-15 阅读0 评论0