2016-09-07 62 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數據分配爲屬性,稍後可以像訪問其他任何屬性一樣訪問。