[英]PHP recursive menu in HTML list structure
這是html結構,看起來應該像
<li><a href="#" class="menulink">Dropdown One</a>
<ul>
<li><a href="#">Navigation Item 1</a></li>
<li>
<a href="#" class="sub">Navigation Item 2</a>
<ul>
<li class="topline"><a href="#">Navigation Item 1</a></li>
<li><a href="#">Navigation Item 2</a></li>
</ul>
</li>
<li>
<a href="#" class="sub">Navigation Item 3</a>
<ul>
<li class="topline"><a href="#">Navigation Item 1</a></li>
<li><a href="#">Navigation Item 2</a></li>
<li>
<a href="#" class="sub">Navigation Item 3</a>
<ul>
<li class="topline"><a href="#">Navigation Item 1</a></li>
<li><a href="#">Navigation Item 2</a></li>
<li><a href="#">Navigation Item 3</a></li>
</ul>
</li>
<li><a href="#">Navigation Item 4</a></li>
</ul>
</li>
<li><a href="#">Navigation Item 4</a></li>
<li><a href="#">Navigation Item 5</a></li>
</ul>
</li>
<li><a href="#" class="menulink">Dropdown Two</a>
<ul>
<li><a href="#">Navigation Item 1</a></li>
<li><a href="#">Navigation Item 2</a></li>
</ul>
</li>
這是mysql表
id |parent_id| name |
---+---------+-----------------+
1 | 0 |Dropdown One |
2 | 1 |Navigation Item 1|
3 | 1 |Navigation Item 2|
4 | 3 |Navigation Item 1|
5 | 3 |Navigation Item 2|
6 | 1 |Navigation Item 3|
7 | 6 |Navigation Item 1|
8 | 6 |Navigation Item 2|
9 | 6 |Navigation Item 3|
10 | 6 |Navigation Item 4|
11 | 1 |Navigation Item 4|
12 | 1 |Navigation Item 5|
13 | 0 |Dropdown Two |
14 | 13 |Navigation Item 1|
15 | 13 |Navigation Item 2|
也許不是最好的方法,但這是我的PHP函數嘗試:
function listCategory($parent_id,$level=0) {
$query = "SELECT name, id , parent_id FROM category WHERE parent_id=".$parent_id;
$res = mysql_query($query) or die($query);
$i=1;
while (list ($name, $id) = mysql_fetch_row($res))
{
if ($level==0) {echo '<li><a href="#" class="menulink">'.$name.'</a></li>';}
echo '<li><a href="#" class="menulink">'.$name.'</a></li>';
//echo $name ." i: ".$i." level: ".$level."<br>";
$i++;
listCategory($id,$level+1);
}
}
listCategory(0);
謝謝你的任何幫助
function listCategory($parent_id,$level=0) {
$query = "SELECT name, id , parent_id FROM category WHERE parent_id=".$parent_id;
$res = mysql_query($query) or die($query);
if(mysql_num_rows($res) == 0) return;
echo '<ul>';
while (list ($name, $id) = mysql_fetch_row($res))
{
if ($level==0)
{
echo '<li><a href="#" class="menulink">'.$name.'</a>';
}
else
{
echo '<li><a href="#">'.$name.'</a>';
}
listCategory($id,$level+1);
echo '</li>';
}
echo '</ul>';
}
您沒有打開和關閉UL標簽
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.