php如何在选择下拉菜单中显示类别和子类别?

时间:2015-08-01 04:12:24

标签: php html mysql

我有一张桌子,我正在保存类别和产品名称:

+-----------------------+
|       products        |
+-----------------------+
| id  name     cat_name |
| 1   lily     flower   |
| 2   hibiscus flower   |
| 3   cat      animal   |
| 4   dog      animal   |
+-----------------------+

我想要一个带有第一个cat_name的选择列表,并且在该产品中有一个' name'

**flower**      
    -lily
    -hibiscus
**animal**  
    -cat
    -dog 

如何在选择列表中实现此目的。请帮忙。

2 个答案:

答案 0 :(得分:0)

在html正文中,它是optgroup标记,用于对选项进行分组。

<select>
    <optgroup label="flower">
        <option value="whatever">lily</option>
        <option value="whatever">hibiscus</option>
    </optgroup>
    ...
</select>

希望你能得到这个想法。  请注意,这些optgroup看起来很差。也许你需要一些jquery插件来获得你想要的东西。

答案 1 :(得分:0)

如果你能得到像这样的数组

array(
    array(
        'id' => 1
        'name' => 'lily',
        'cat_name' =>'flower'

    ),
    array(
        'id' => 2
        'name' => 'hibiscus',
        'cat_name' =>'flower'

    ),
    .....
    );

然后用cat分组数据

    $groups = array();
    foreach ($results  as $rs) {
      $key = $rs['cat_name'];
      if (!isset($groups[$key])){
        $groups[$key] = array();
      }
      $groups[$key][] = $rs;
    }

然后循环$ groups,echo html选项,如

//this not php code
 loop  groups {
        echo optgroup opentag
        loop groups[cat_name]{
            echo option tag
        }
        echo optgroup close tag
 }