0

好的,我希望这是有道理的。所以我正在建设一个店铺,贯穿店铺的一个不变元素是店铺侧导航。这是一个水平菜单,将主要类别显示为标题。

当您登陆主商店页面时,它会提示您选择一个类别。在此页面上仅显示主要类别标题,如下所示:

类别 1 类别 2 类别 3 类别 4 类别 5

但是,当您选择一个类别时,它将重定向到该类别页面,并且侧面导航菜单会略有变化。并显示该类别的子菜单,并且仅显示该类别,例如,如果您单击 Cat1,它将如下所示:

类别 1 子类别 1 子类别 2 子类别 3 类别 2 类别 3 类别 4 类别 5

对基本示例感到抱歉。我的问题是我似乎不能只为一个类别制作子菜单循环,要么不显示它们,要么为所有类别循环相同的子菜单。

这是旁边的导航代码:

<div id="shopcontentl">
   <div id="shopnavigation">
    <?php
    $navGet = mssql_query("SELECT * FROM Categories");
    while ($navHead = mssql_fetch_array($navGet)) { 
    ?>
      <a href="category.php?id=<?php echo $navHead['CatID']; ?>"><?php echo $navHead['CatName']; ?></a>
    <?php
    if (isset($_GET['id']) && ($_GET['id'] > 0)) {
    ?>
    <div class="subnav">
    <?php
    $subnavGet = mssql_query("SELECT SubCatName FROM SubCategories WHERE CatID = ".$_GET['id']."");
    while ($subnavHead = mssql_fetch_array($subnavGet)) {
    ?>
      <a href="category.php"><?php echo $subnavHead['SubCatName']; ?></a>
    <?php
    }
    ?>
    </div>
    <?php
    }
    }
    ?>
    </div>
 </div>

我很确定我使用错误的循环,但我对 PHP 相当陌生,谁能理解我在说什么并指出我正确的方向?提前致谢。

4

2 回答 2

2

您需要为特定 id 添加条件,如下所示。

if (isset($_GET['id']) && ($_GET['id'] > 0) && ($_GET['id']==$navHead['CatID'])) {
于 2012-11-20T12:52:09.953 回答
1

只是一个变化

<?php
$subnavGet = mssql_query("SELECT SubCatName FROM SubCategories WHERE CatID = ".$navHead['CatID']."");
while ($subnavHead = mssql_fetch_array($subnavGet)) {
?>

它必须用于子类别,因为每当获取一个类别而不是进入内部循环时,它都需要特定主类别的主 ID。所以我们可以将该 id 提供给内部循环查询。

于 2012-11-20T12:53:11.890 回答