0%

[技能檢定]題組四 步驟17 製作前台商品分類選單

前台商品分類區和購物車功能算是一氣呵成的功能,因此我們放在後台告一段落後來製作這部份。

  1. index.php 中找到 #left 中用來放置選單的區塊
  2. 撰寫產生分類選單的程式碼,這邊我們利用巢狀迴圈的方式來分別取出大分類及所屬的中分類,原理和後台的分類管理一樣;
  3. 接著利用內建的css功能來達到出現中分類的功能,當然,也可以用題組一的做法來完成,使用題組四的方式做出來的中分類會造成選單長度的位移,並不是個很友善的呈現方式。
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    <div style="min-height:400px;">
    <div class="ww">
    <a href='?type=0'>全部商品(<?=$Goods->count(['sh'=>1]);?>)</a>
    </div>
    <?php
    //取得所有大分類
    $bigs=$Type->all(['big_id'=>0]);
    //使用迴圈列出所有大分類
    foreach($bigs as $big){
    //將分類包在class='ww'的div中
    echo "<div class='ww'>";
    //建立大分類的超連結
    echo "<a href='?type={$big['id']}'>";
    //顯示大分類的名稱
    echo $big['name'];
    //計算該大分類下的所有商品數量
    echo "({$Goods->count(['big'=>$big['id'],'sh'=>1])})";
    echo "</a>";

    //判斷此一大分類下是否有中分類
    if($Type->count(['big_id'=>$big['id']])>0){
    //取得所有中分類
    $mids=$Type->all(['big_id'=>$big['id']]);
    //使用迴圈列出所有中分類
    foreach($mids as $mid){
    //將分類包在class='s'的div中
    echo "<div class='s'>";
    //建立中分類的超連結
    echo "<a href='?type={$mid['id']}'>";
    //顯示中分類的名稱
    echo $mid['name'];
    //計算該中分類下的所有商品數量
    echo "({$Goods->count(['mid'=>$mid['id'],'sh'=>1])})";
    echo "</a>";
    echo "</div>";
    }
    }
    echo "</div>";
    }
    ?>
    </div>

  1. 要讓中分類選單更顯眼的話,可以在 /css/css.css 中增加一個設定
    1
    2
    3
    4
    5
    6
    #left div.s  a{
    background:lightgreen;
    position:relative;
    left:20px;
    z-index:10;
    }