嵌套while循环在Smarty模板代码中进行反射

时间:2018-07-17 18:16:55

标签: php html smarty smarty3 smarty2

我正在尝试创建一个类似电子商务网站的三级超级菜单。我可以在Core PHP中做到这一点。反映了三级巨型菜单。让我们分一部分来更好地理解。

这是反映Core PHP中三级超级菜单的代码。

<?php
include"config/db.php";

// Parent Category
$category = $pdo->prepare("SELECT * FROM category");
$category-> execute();
?>
<ul>
  <?php
    while($cat = $category->fetch()){
    // Sub Category
    $subCat = $pdo->prepare("SELECT * FROM sub_category WHERE sc_cat=".$cat['cat_id']);
    $subCat-> execute();
  ?>
  <li>
    <a href=""><?php echo $cat['cat_name']; ?></a>
    <ul>
      <?php while($sc = $subCat->fetch()){ ?>
        <li><a href=""><?php echo $sc['sc_name']; ?></a>
        <?php
          // Child Category
          $childCat = $pdo->prepare("SELECT * FROM child_category WHERE cc_subcat=".$sc['sc_id']);
          $childCat-> execute();
        ?>
          <ul>
            <?php while($cc = $childCat->fetch()){ ?>
              <li class=""><a href="category.php?cat=<?=$level2['id']; ?>"><?php echo $cc['cc_name']; ?></a></li>
            <?php } ?>
          </ul>
        </li>
      <?php } ?>
    </ul>
  </li>
<?php } ?>

为了聪明,我将PHP代码设置为:

// Parent Category
$category = $pdo->prepare("SELECT * FROM category");
$category-> execute();

$data = array();
while($cat = $category->fetch()){
  // Category Name
  $catName = $cat['cat_name'];

  // Sub Category
  $subCat = $pdo->prepare("SELECT * FROM sub_category WHERE sc_cat=".$cat['cat_id']);
  $subCat-> execute();

  while($sc = $subCat->fetch()){
    // Sub Category Name
    $subCatName = $sc['sc_name'];

    // Child Category
    $childCat = $pdo->prepare("SELECT * FROM child_category WHERE cc_subcat=".$sc['sc_id']);
    $childCat-> execute();

    while($cc = $childCat->fetch()){
      // Child Category Name
      $childCatName = $cc['cc_name'];

      $data[$catName][] = array('subCatName' => $subCatName, 'childCatName' => $childCatName);
    }
  }
}

$smarty->assign('navCat', $data);

现在,我希望它作为一个大型菜单反映在我的.tpl页中。我希望上面的Smarty代码中的一切都很好。如果有任何错误,请通知我。

现在这是Mega Menu模板的HTML代码。

<div class="navbar">
        <div class="dropdown">
        <button class="dropbtn">Parent Category 1</button>
        <div class="dropdown-content">
          <div class="container">
            <div class="menu-cover">
              <div class="row">
                <div class="container">
                <div class="column">
                  <h4>Sub Category</h4>
                  <a href="#">Child Category</a>
                  <a href="#">Child Category</a>
                  <a href="#">Child Category</a>
                  <a href="#">Child Category</a>
                  <a href="#">Child Category</a>
                  <a href="#">Child Category</a>
                  <a href="#">Child Category</a>
                  <a href="#">Child Category</a>
                </div>
                <div class="column">
                  <h4>Sub Category</h4>
                  <a href="#">Child Category</a>
                  <a href="#">Child Category</a>
                  <a href="#">Child Category</a>
                  <a href="#">Child Category</a>
                </div>
                <div class="column">
                  <h4>Sub Category</h4>
                  <a href="#">Child Category</a>
                  <a href="#">Child Category</a>
                  <a href="#">Child Category</a>
                  <a href="#">Child Category</a>
                </div>
                <div class="column">
                  <h4>Sub Category</h4>
                  <a href="#">Child Category</a>
                  <a href="#">Child Category</a>
                  <a href="#">Child Category</a>
                  <a href="#">Child Category</a>
                </div>
              </div>
              </div>
            </div>
          </div>
        </div>
        <button class="dropbtn">Parent Category 2</button>
        <div class="dropdown-content">
          <div class="container">
            <div class="menu-cover">
              <div class="row">
                <div class="container">
                <div class="column">
                  <h4>Sub Category</h4>
                  <a href="#">Child Category</a>
                  <a href="#">Child Category</a>
                  <a href="#">Child Category</a>
                  <a href="#">Child Category</a>
                  <a href="#">Child Category</a>
                  <a href="#">Child Category</a>
                  <a href="#">Child Category</a>
                  <a href="#">Child Category</a>
                </div>
                <div class="column">
                  <h4>Sub Category</h4>
                  <a href="#">Child Category</a>
                  <a href="#">Child Category</a>
                  <a href="#">Child Category</a>
                  <a href="#">Child Category</a>
                </div>
                <div class="column">
                  <h4>Sub Category</h4>
                  <a href="#">Child Category</a>
                  <a href="#">Child Category</a>
                  <a href="#">Child Category</a>
                  <a href="#">Child Category</a>
                </div>
              </div>
              </div>
            </div>
          </div>
        </div>
      </div>

如何在Smarty中使用foreach和section循环在PHP中反映PHP while循环代码,以使mega菜单从数据库中出现?我是新手,遇到麻烦了。

0 个答案:

没有答案
相关问题