2016-09-07 106 views
1

我有一个网页,查询数据库以获得与他们的相关数据,如价格,尺寸,重量等产品的清单,并显示给用户,我想添加其中之一下拉列表,以便用户可以按照我指定的价格或任何其他键对产品进行分类。存储一个PHP数组客户端

我打算在下拉菜单中使用Ajax来更改查询数据库,并将所选值用作查询中的排序键。 我的问题是,有没有办法,这可以做客户端没有运行另一个查询? php可以将查询结果发送到浏览器并将其存储在那里,然后使用jquery进行一遍又一遍的排序吗?

感谢大家的帮助!

+0

您已经有了答案,只需将其翻转;)通过Ajax进行初始数据库查询并保留结果。然后你可以随心所欲,对它进行分类,过滤等 – datafunk

回答

3

有很多方法可以实现。一个简单的例子可以用HTML5 LocalStorage完成。

这里有一个如何可以做一个概述:

  1. 您完成最初的呼叫通过AJAX您的数据库产品,返回一个JSON对象。
  2. 您可以通过JavaScript将该JSON对象序列化,例如var stringData = JSON.stringify(data)

  3. 商店所述可变进的localStorage:window.localStorage.setItem("products", stringData);

  4. 然后,您可以在以后通过var products = window.localStorage.getItem("products)访问它,最后用var productsObj = JSON.parse(products)反序列化或做这一切在一个CCCCC-组合断路器:productsObj = JSON.parse(window.localStorage.getItem("products))

  5. 待办事项如你所愿,使用过滤功能!

另一种方法是使用某种形式的存储来存储初始JSON对象,例如, Redux,但让我们另存一天;)

当然,您可以选择具有全局可访问的对象,您可以将初始JSON数据分配为属性,稍后可以像访问其他任何属性一样访问。