2

我并不经常发现自己对如何解决问题感到完全困惑,但对于这个问题,老实说,我一无所知。

我正在建立一个有很多项目的网站,在主页上,我希望人们能够通过打开和关闭过滤器来浏览这些项目。例如,其中一种过滤器类型是 GENRE。用户会看到一个流派列表,单击该列表会过滤掉与该流派匹配的所有项目。此外,如果您单击两种不同的类型,您将只看到与这两种类型都匹配的项目。

问题是,这一切都需要通过 AJAX 来完成,而这正是我开始感到困惑的时候。如何进行 ajax 调用,不仅设置新过滤器,而且记住当前存在的过滤器?加载页面后,我可以执行类似的操作

<a href="/api/projects?genre=first_genre">First Genre</a>
<a href="/api/projects?genre=second_genre">Second Genre</a>

但问题是,当我一次单击两个时,我最终只能按一个流派进行过滤。或许,每次点击一个链接时,我都可以使用 JS 更新所有链接以包含一系列已选择的类型,但这似乎非常草率。然后,每个链接都将具有以下内容:

<a href="/api/projects/?genres[]=first_second&genres[]=second_genre etc etc...">First Genre</a>

我的另一个想法是可能将所有当前过滤器存储在 cookie 中,然后当单击链接时,将该新过滤器添加到 cookie 中的过滤器列表中,但同样,这似乎很草率。

关键是,我不知道这样做的正确方法是什么,我感到有点失落。对于以前成功做过类似事情的任何人,帮助!

4

1 回答 1

1

从用户的角度来看,Ajax 过滤器总是会产生两个问题。一是用户不能为过滤器网址添加书签,也不能使用后退按钮。

例如,用户单击过滤器 1,然后单击过滤器 2。如果用户单击返回按钮或重新加载页面,用户将丢失所有过滤器数据。

这是管理所有的一种方法

您可以使用此方法 Jquery BBQ http://benalman.com/projects/jquery-bbq-plugin/

单击流派过滤器后,您可以使用上述插件将过滤器值附加到 url 的哈希中,并且每当用户重新加载页面或使用后退按钮时,您都会将所有选择的流派添加到哈希中。

于 2012-07-06T08:57:24.253 回答