我有一个菜单,其中某些页面包含可打开下拉菜单的子页面。

我有两个SQL表:

'pages' => page_id, page_name;'subpages' => subpage_id, page_id, page_name;

当我通过表单插入子页面时,它们与所选父页面具有相同的page_id。

问题是,所有菜单元素都显示下拉箭头-甚至没有子页面的元素也是如此。

仅当页面有子页面时,才可以打印内容吗?
这就是我要的:

if pages.page_id=subpages.page_id
print
  <button class="dropdown-btn">
    <?php echo $page['page_name']; ?>
    <i class="fa fa-caret-down"></i>
  </button>

else print
  <a href="#"><?php echo $page['page_name']; ?></a>


index.php:

<?php foreach ($pages as $page) { ?>

    <button class="dropdown-btn">
      <?php echo $page['page_name']; ?>
      <i class="fa fa-caret-down"></i>
    </button>

    <div class="dropdown-container">
<?php foreach ($subpages as $subpage) {
  if($subpage['page_id'] == $page['page_id']) {
?>
  <a href="../subpage.php?id=<?php echo $subpage['subpage_id']; ?>">
    <?php echo $subpage['subpage_name']; ?>
  </a>
<?php } } ?>
    </div>

<?php } ?>


任何帮助表示赞赏!

最佳答案

首先,我将像这样更改Subpage类:

class Subpage {
    public function fetch_all(){
        global $pdo;

        $query = $pdo->prepare("SELECT * FROM subpages");
        $query->execute();

        return $query->fetchAll();
    }

    // Static function: Fetch all subpages of single page
    public static function fetch_all_page($page_id){
        global $pdo;

        $query = $pdo->prepare("SELECT * FROM subpages WHERE page_id = ?");
        $query->bindValue(1, $page_id);
        $query->execute();

        return $query->fetchAll();
    }

    public function fetch_data($subpage_id) {
        global $pdo;

        $query = $pdo->prepare("SELECT * FROM subpages WHERE subpage_id =
?");
        $query->bindValue(1, $subpage_id);
        $query->execute();

        return $query->fetch();
    }
}


您的index.php将变为:

<?php foreach ($pages as $page) { ?>

    <?php $subpages = Subpage::fetch_all_page($page['page_id']); ?>

    <button class="dropdown-btn">
        <?php echo $page['page_name']; ?>
        <?php if (count($subpages)): ?>
            <i class="fa fa-caret-down"></i>
        <?php endif; ?>
    </button>

    <div class="dropdown-container">
        <?php foreach ($subpages as $subpage): ?>
            <a href="../subpage.php?id=<?php echo $subpage['subpage_id']; ?>">
                <?php echo $subpage['subpage_name']; ?>
            </a>
        <?php endforeach; ?>
    </div>

<?php } ?>

07-28 02:27
查看更多