0

我正在创建一个产品目录,该目录将通过数据库查询进行浏览,结果显示在 div 中,无需通过 ajax 刷新页面。

类别示例为:

家庭健康娱乐

每个类别还有子类别,即:

HOME:园林家具水暖等

我想做一个小目录,可以准确显示它们的位置,例如:

首页 >>> 花园 >>> 草坪护理

将这些中的每一个都作为可点击的链接,将人们带回特定的查询级别。

我的代码是 1 个 .php 文档,涉及查询和输出查询的代码。如果单击输出,它会触发一个 ajax 脚本,该脚本指向并重新运行相同的查询/输出,但结果不同。

话虽这么说,我不知道如何创建一种存储和显示目录路径的方法。我上面提到的。

我正在考虑采用某种方法来获取单击的类别并将其通过 url 传递,以便 php 在重新加载时具有值。然后我将该变量放入可点击的目录链接中。但问题是我不确定如何为多个图层做到这一点。

即,如果有人只是点击“花园”,我可以通过花园变量并在导航中使用它,但是如果有人点击“草坪护理”,我将不确定如何保留“花园”变量,因为我带来的变量通过 url 现在将显示“草坪护理”。

我觉得它与动态添加和存储数组中的累积值有关,但我真的没有想法......

4

2 回答 2

5

根据您的描述,听起来您想要实现面包屑/类别而不是目录。

如果是这种情况,您基本上需要在数据库中创建一个 Categories 表,如下所示:

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

这将等同于如下的层次结构:

    • 花园
      • 草坪护理
    • 家具
    • 水暖

因此,如果我想进行产品展示,例如,在Home > Garden > 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.

有很多方法可以实现这一点,这就是我省略细节的原因。

或者,您可以只在保存产品或类别时进行此计算,以便它可以一次而不是每次都绘制层次结构(节省计算),但这将是一个非常简单的解决方案,适用于大量的产品。

这样做的好处是您还可以根据您所在的类别实施产品列表,从另一个角度来看,您可以创建每个类别的产品计数。

于 2012-09-23T22:19:19.210 回答
0

您可以使用类似的 URL\Home\Garden\LawnCare并使用 .htaccess 和 mod_rewrite 重写它们。当用户单击 Garden 或 Home 时,您可以轻松返回请求的页面...这是解决问题的简单方法...

于 2012-09-23T22:11:24.573 回答