PHP/HTML为具有父ID和子ID的webshop类别创建下拉列表

PHP/HTML为具有父ID和子ID的webshop类别创建下拉列表,php,html,Php,Html,我现在正忙着制作一个包含不同类别和不同家长id的网店。 我的数据库结构如下: id-名称-父id: 1-游戏-0 2-电影-0 3-类型-1 4-类型-2 5-行动-3 6-历史-4 现在在管理部分,当我想添加一个类别时,我想在下拉列表中显示我的所有类别,但我想将父类别和子类别分开。有没有一个简单的方法可以做到这一点 您好Eric我不确定您所说的“希望父ID和子ID分开”是什么意思。请理解,select中的元素只不过是一个显示值和一个数据值,数据值将与字段名一起发送到服务器 因此,select无

我现在正忙着制作一个包含不同类别和不同家长id的网店。 我的数据库结构如下:

id-名称-父id:

1-游戏-0

2-电影-0

3-类型-1

4-类型-2

5-行动-3

6-历史-4

现在在管理部分,当我想添加一个类别时,我想在下拉列表中显示我的所有类别,但我想将父类别和子类别分开。有没有一个简单的方法可以做到这一点


您好Eric

我不确定您所说的“希望父ID和子ID分开”是什么意思。请理解,
select
中的元素只不过是一个显示值和一个数据值,数据值将与字段名一起发送到服务器

因此,
select
无法真正区分多种类型的数据值。例如,每个
选项不能有多个ID。您所能做的就是将显示值格式化为包含ID(例如您使用“1-games-0”等),并决定哪个数据值应为
选择中的
选项的值

您可以做的一件事是将
选项
元素分组。大概是这样的:

<select name="myOptions">
  <optgroup label="Category 1">
    <option value="1">First Choice</option>
    <option value="2">Second Choice</option>
    <option value="3">Third Choice</option>
  </optgroup>
  <optgroup label="Category 2">
    <option value="4">Fourth Choice</option>
    <option value="5">Fifth Choice</option>
  </optgroup>
  <optgroup label="Category 3">
    <option value="6">Sixth Choice</option>
    <option value="7">Seventh Choice</option>
  </optgroup>
</select>

首选
第二选择
第三选择
第四选择
第五选择
第六选择
第七选择

在验证中,浏览器不应允许用户选择组,他们必须选择实际选项。所以你不必为此担心。这在更层次地显示值方面提供了一些额外的灵活性。但是,请理解,在这种情况下,只允许一个级别的选项嵌套。(因此一个
optgroup
不能包含另一个
optgroup

谢谢,好吧,所以我必须在optgroup数组中分离每个主要类别?@Eric1978:如何在代码中构造此HTML取决于您。本质上,它看起来像一个嵌套在类别中的值循环。