Trong một website có lẽ sẽ không bao giờ không có menu, tùy vào mục đích thiết kế và ý tưởng mà menu được thể hiện khác nhau ở mỗi trang web. Trong đó menu đa cấp là một dạng phổ biến nhất, hôm nay mình sẽ giới thiệu đến mọi người các tạo menu đa cấp hay còn gọi multi-level menu đệ quy trong PHP.
Đệ quy chuyên mục đa cấp thẻ table
| 
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 | // BƯỚC 1: LẤY DANH SÁCH CATEGORIES$conn= mysqli_connect('localhost', 'root', '', 'test');$sql= 'SELECT * FROM categories';$result= mysqli_query($conn, $sql);$categories= array();while($row= mysqli_fetch_assoc($result)){    $categories[] = $row;}// BƯỚC 2: HÀM ĐỆ QUY HIỂN THỊ CATEGORIESfunctionshowCategories($categories, $parent_id= 0, $char= ''){    foreach($categoriesas$key=> $item)    {        // Nếu là chuyên mục con thì hiển thị        if($item['parent_id'] == $parent_id)        {            echo'<tr>';                echo'<td>';                    echo$char. $item['title'];                echo'</td>';            echo'</tr>';                        // Xóa chuyên mục đã lặp            unset($categories[$key]);                        // Tiếp tục đệ quy để tìm chuyên mục con của chuyên mục đang lặp            showCategories($categories, $item['id'], $char.'|---');        }    }} | 
Đệ quy chuyên mục đa cấp thẻ select option
| 
1 
2 
3 
4 
5 
6 
7 
8 
9 
10 
11 
12 
13 
14 
15 
16 
17 
18 
19 
20 | // BƯỚC 2: HÀM ĐỆ QUY HIỂN THỊ CATEGORIESfunctionshowCategories($categories, $parent_id= 0, $char= ''){    foreach($categoriesas$key=> $item)    {        // Nếu là chuyên mục con thì hiển thị        if($item['parent_id'] == $parent_id)        {            echo'<option value="'.$item[$key].'">';                echo$char. $item['title'];            echo'</option>';                        // Xóa chuyên mục đã lặp            unset($categories[$key]);                        // Tiếp tục đệ quy để tìm chuyên mục con của chuyên mục đang lặp            showCategories($categories, $item['id'], $char.'|---');        }    }} | 
Đệ quy chuyên mục đa cấp với thẻ UL và LI
| 
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 | // BƯỚC 2: HÀM ĐỆ QUY HIỂN THỊ CATEGORIESfunctionshowCategories($categories, $parent_id= 0, $char= ''){    // BƯỚC 2.1: LẤY DANH SÁCH CATE CON    $cate_data= array();    foreach($categoriesas$key=> $item)    {        // Nếu là chuyên mục con thì hiển thị        if($item['parent_id'] == $parent_id)        {            $cate_data[] = $item;            unset($categories[$key]);        }    }        // BƯỚC 2.2: HIỂN THỊ DANH SÁCH CHUYÊN MỤC CON NẾU CÓ    if($cate_data)    {        echo'<ul>';        foreach($cate_dataas$key=> $item)        {            // Hiển thị tiêu đề chuyên mục            echo'<li>'.$item['title'];                        // Tiếp tục đệ quy để tìm chuyên mục con của chuyên mục đang lặp            showCategories($categories, $item['id'], $char.'|---');            echo'</li>';        }        echo'</ul>';    }} | 


 
 
 
 
 
 
 
 
 

 
Nhận xét
Đăng nhận xét