PHP / SQL / AJAX-下拉菜单中的更新选项基于先前选择的选项

时间:2018-09-25 14:21:25

标签: php sql ajax

我正在创建一个电子商务网站。

目前,我有一个名为“ attribute_titles”的表,如下所示:

ID  NAME
1   size
2   colour

然后我有一个名为“ attribute_values”的表,如下所示:

ID  ATTRIBUTE_ID    VALUE
1   1               small
2   1               medium
3   1               large
4   2               red
5   2               green
6   2               blue

然后,我的产品表将包含适用于相关产品的属性数组,因此尺寸和颜色为['1','2']。然后,我有一个定价表,其中包含产品每个变体的价格以及该属性的多维数组。因此,红色的小商品将以['1'=>'1','2'=>'4']作为属性。

我在产品页面上有一个尺寸下拉列表和一个颜色下拉列表,但是可能不是所有组合都存在,因此例如我们只有中等大小和大尺寸的绿色产品。

因此,如果有人选择绿色作为颜色,那么我想更新下拉列表,以便不显示小尺寸。

目前,他们可以选择任何颜色或尺寸,然后检查价格表中是否存在该组合,如果没有,我只是发出警告,但我不希望他们能够选择不存在的选项。

任何有关如何实现这一目标的想法或建议,将不胜感激。

1 个答案:

答案 0 :(得分:1)

我以前在电子商务领域工作过。

您的建模不完整。此时,您缺少的是SKU实体(库存单位)。该实体对您之前概述的概念的存在进行建模。通常,它还会管理每种产品组合的库存可用性(即其名称的来源)。

电子商务网站通常显示“产品”,而不显示SKU(直接)。例如,“ V领Safari T恤”。在后台,您实际上对该单个产品有多个SKU。您可能有:

create table sku (
  product_id int foreign key product (id),
  color_id int foreign key color (id),
  size_id int foreign key size (id),
  units_left int
);

select * from sku;

color  size  units_left
-----  ----  ----------
Blue   M     10
Blue   L     6
Red    L     7
Red    XL    0 -- no stock of this one today!
Green  S     2

您还需要确定是否要显示确实没有库存的SKU(在上面的示例中为Red,XL)。

如果有更多库存,您只需将这些值添加到SKU表中。如果有新的组合到达,您可能需要添加额外的行(例如,绿色,M)。