如何在下拉列表中列出父类别?

时间:2018-10-25 06:45:11

标签: html5 css3 php-7

我有一个在option框中列出类别的功能,但是我想在下拉菜单中列出类别以进行导航。

我可以列出主要类别,但不能列出父类别。

任何帮助将不胜感激。谢谢

这是我的职能:

function categori($parent_id = 0, $st = 0){
  Global $pdo;
    $stmt = $pdo->prepare("SELECT * FROM categories WHERE parent_id = :parent");
    $stmt->execute(array('parent'=>$parent_id));
    $v = $stmt->fetchAll(PDO::FETCH_ASSOC);
    $say = $stm

t->rowCount();
     if($say){
        foreach($v as $rows){
         echo "<li><a href=".$rows['cat_id']."/".$rows['seo_url'].">".$rows['cat_name']."</a></li>";
                       categori($rows['cat_id']);
                }
            }
     unset($stmt);
    } 

Usac:

categori();

下拉菜单:

<ul>
    <li><a href="cat">main cat</a>
        <ul>
            <li><a href="cat">child cat</a></li>
        </ul>
   </li>
</ul>

1 个答案:

答案 0 :(得分:0)

由于函数categori将父类别ID作为参数,因此您可以轻松显示父类别和子类别。

只需稍微更改html模板即可。 首先得到主要类别。这些应该是父类别ID为0的所有类别。

<?php $parentCategories = category(); ?>

然后遍历所有父类别,并按父类别ID提取子类别。

<ul>
<?php foreach ($parentCategories as $parentCategory) : ?>
    <li>
        <a href="cat"><?= $parentCategory['name'] ?></a>
        <ul>
        <?php
            $children = category($parentCategory['id']); 
            foreach ($children as $child) :
        ?>
            <li><?= $child['name'] ?></li>
        <?php endforeach; ?>
        </ul>
    </li>
    <?php endforeach; ?>
</ul>

如您所见,有两个foreach迭代。第一个遍历父类别。第一个foreach循环中的第二个循环遍历子类别,您可以通过父类别ID来获取子类别。