Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/263.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PHP/SQL/AJAX-根据先前选择的选项更新下拉菜单中的选项_Php_Sql_Ajax - Fatal编程技术网

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

PHP/SQL/AJAX-根据先前选择的选项更新下拉菜单中的选项,php,sql,ajax,Php,Sql,Ajax,我正在创建一个电子商务网站 目前,我有一个名为“attribute_titles”的表,如下所示: ID NAME 1 size 2 colour ID ATTRIBUTE_ID VALUE 1 1 small 2 1 medium 3 1 large 4 2 red 5 2 green 6 2

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

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

ID  NAME
1   size
2   colour
ID  ATTRIBUTE_ID    VALUE
1   1               small
2   1               medium
3   1               large
4   2               red
5   2               green
6   2               blue
然后我有一个名为“attribute_values”的表,如下所示:

ID  NAME
1   size
2   colour
ID  ATTRIBUTE_ID    VALUE
1   1               small
2   1               medium
3   1               large
4   2               red
5   2               green
6   2               blue
然后,我的products表将包含一系列适用于所讨论产品的属性,因此大小和颜色将为['1','2']。然后,我有一个定价表,其中包含产品的每个变体的价格以及属性的多维数组。因此,一个小的红色乘积将有['1'=>'1','2'=>'4']作为属性

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

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

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


如果您对我如何实现这一目标有任何想法或建议,我将不胜感激。

我以前从事电子商务工作

你的造型不完整。此时您缺少的是SKU实体库存单元。此实体为您之前概述的概念的存在建模。它通常还管理库存可用性,而库存可用性正是其名称来源于产品的每个组合

电子商务网站通常显示产品,而不是直接显示SKU。例如,V领狩猎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显示您实际上没有红色XL库存


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

您可以使用JavaScript处理下拉列表的更改事件,然后更新另一个下拉列表的内容以适应所选内容。为了获得正确的数据,您可以对服务器进行AJAX调用,也可以在创建页面时将查找数据预加载到JavaScript中。可能重复感谢您的回答。我们的网站有点不同,因为我们没有存货。我们就像一个经销商,所以我们只是接受订单,并生成采购订单的项目。此外,颜色和大小只是示例,因此我们可以拥有任意数量的属性,我们的商店目前有近100个,因此创建这样的表对我来说不起作用