2012-09-23 43 views
0

我正在創建一個產品目錄,通過數據庫查詢瀏覽結果,並在div中顯示結果,無需通過ajax進行頁面刷新。我如何創建一個產品目錄即時製作目錄?

類別的例子是:

首頁 健康 娛樂

也有每個類別的子類別,即:

HOME: 花園 傢俱 水暖 等等

我想製作一個顯示實例的小目錄ctly他們在哪裏,是這樣的:

首頁>>>花園>>>草坪護理

其中任一個爲可點擊的鏈接,採取人回到那個特定的查詢級別。

我的代碼是1.php文件,涉及查詢和代碼來輸出查詢。如果輸出被點擊,它會觸發一個ajax腳本,該腳本指向並重新運行相同的查詢/輸出,但結果不同。

這就是說,我不知道我會如何創建一種方式來存儲和顯示目錄路徑。我上面提到。

我想到了一種方法,它需要點擊的類別並通過url傳遞,以便PHP在重新加載時具有值。然後我將這個變量變成一個可點擊的目錄鏈接。但問題是我不知道如何爲多個圖層做到這一點。

ie 如果有人只是點擊「花園」,我可以通過花園變量,並在導航中使用,但如果有人點擊「草坪護理」我不知道如何保持「花園」變量因爲我通過url帶來的變量現在將被讀爲「草坪護理」。

我覺得它是與動態添加和在陣列中存儲的累計值,但我真的沒了主意......

+0

數據按層次結構存儲在「目錄」結構中嗎?如果是這樣的話,我想如果一個代表「草坪護理」的ID被傳遞到腳本中,那麼從數據中,你可以辨別它的父母,父母的父母等等,直到你到達根層級。 – David

回答

5

從你所描述的,這聽起來像你想要實現麪包屑/類別而不是目錄。

如果是這樣的話,你基本上需要在數據庫中創建一個分類表像這樣:

Categories 
id | parent_id | name 
1 | 0   | Home 
2 | 1   | Garden 
3 | 1   | Furniture 
4 | 1   | Plumbing 
5 | 2   | Lawn Care 

這將等同於層次結構如下所示:

  • 首頁
    • 花園
      • 草坪護理
    • 傢俱
    • 水暖

所以,如果我想有一個產品展示,例如,在首頁>花園>草坪護理,我需要的產品鏈接類別#5(草坪護理)。然後我需要開發一個函數來做一些while循環,從那裏算出父結構。它需要循環直到它找不到父(或直到parent_id = 0)。換句話說,它會去:

I'm in Lawn Care. Does Lawn Care have a parent? 
Yes -> Garden. Does Garden have a parent? 
Yes -> Home. Does Home have a parent? 
No -> End. 

有很多方法來實現這一點,這就是爲什麼我留下了具體情況。

或者,您可以在保存產品或類別時進行此計算,以便它可以一次性繪製出層次結構,而不是每次(保存計算結果),但這是一個非常簡單的解決方案,可以運行爲大量的產品。

這樣做的好處是,您還可以根據所處類別實施產品列表,並且從另一個角度來看,您可以創建每個類別的產品計數。

+0

非常深思熟慮和明確的答案。謝謝!太棒了! – user1299028

0

可以使用的URL像\Home\Garden\LawnCare和使用重寫它們。 htaccess和mod_rewrite ..而當用戶點擊花園或家庭,你可以很容易地回到所請求的頁面...這是這樣一個簡單的解決方案的問題...

+0

這很簡單,但現在您需要清理URL中的值,同時保存每個類別的顯示名稱和URL名稱,並檢查其有效性,以便用戶無法輸入「自定義「值使您的網站顯示淫穢/冒犯/非法類別列表。 – octern