显示分层数据

2023-12-09

我正在玩一个我在这里找到的关于“树形菜单”的代码示例,并想提出这个问题。

function tree($id)
{
$query = "SELECT `name`,`id` from `table` WHERE `id_parrent` = '$id'";
$result = mysql_query($query);
 if(mysql_num_rows($result) != 0)
   {
        echo "<ul>";
        while($row = mysql_fetch_array($result))
        {             
             echo "<li>",$row[name],"</li>";
             tree($row[id]);
        }
        echo "</ul>";
   }
}

如果我想以这样的方式显示项目怎么办:

<ul>
<li>item 1</li>
<li>item 2</li>
  <li style="padding-left:10px;">item 3-has parent 2</li>
   <li style="padding-left:20px;">item 4-has parent 3</li>
  <li style="padding-left:10px;">item 5-has parent 2</li>
<li>item 6</li>
</ul>

我的主要问题是以某种方式找到级别,以便我可以乘以 level*padding 并创建我的列表。 任何建议,将不胜感激。


你需要你的tree函数来跟踪级别,然后在级别大于 1 时应用填充。

function tree($id, $level=1) {
    $query = "SELECT `name`,`id` from `table` WHERE `id_parrent` = '$id'";
    $result = mysql_query($query);
    if (mysql_num_rows($result) != 0) {
     echo "<ul>";
     while ($row = mysql_fetch_array($result)) {
         if ($level == 1)
             echo "<li>" . $row[name] . "</li>";
         else
          echo "<li style='padding-left: " + (($level - 1) * 10) + "px;'>" . $row[name] . "</li>";
         tree($row[id], $level + 1);
     }
     echo "</ul>";
    }
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

显示分层数据 的相关文章