Как перечислить родительские категории в выпадающем списке? - PullRequest
0 голосов
/ 25 октября 2018

У меня есть функция, которая перечисляет категории в поле 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 голосов
/ 17 декабря 2018

Поскольку ваша функция categori не принимает идентификатор родительской категории в качестве параметра, вы можете легко отображать родительские и дочерние категории.

Просто немного измените свой HTML-шаблон.Сначала получите основные категории.Это должны быть все категории с идентификатором родительской категории 0.

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

Затем выполните итерацию по всем родительским категориям и извлеките дочерние категории по идентификатору родительской категории.

<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 перебирает дочерние категории, которые вы выбираете по идентификатору родительской категории.

...