首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >PHP生成UL LI,UL LI

PHP生成UL LI,UL LI
EN

Stack Overflow用户
提问于 2011-04-07 19:22:44
回答 4查看 28.6K关注 0票数 3

不知道如何使用while循环生成此菜单。

这是我的代码示例:

代码语言:javascript
复制
<ul id="nav">
<li><a href="#">Hoofdmenu 1</a>
<ul class="sub">
        <li><a href="#">Submenu 1.1</a></li>
        <li><a href="#">Submenu 1.2</a></li>
        <li><a href="#">Submenu 1.3</a></li>
        <li><a href="#">Submenu 1.4</a></li>
    </ul>
</li>

<li><a href="#">Hoofdmenu 2</a>
    <ul class="sub">
        <li><a href="#">Submenu 2.1</a></li>
        <li><a href="#">Submenu 2.2</a></li>
        <li><a href="#">Submenu 2.3</a></li>
        <li><a href="#">Submenu 2.4</a></li>
    </ul>
</li>
</ul>

我的dbtable看起来像这样:

代码语言:javascript
复制
paginas:
    id
    title
    content
    type

当从父菜单输入== id时,它应该是子菜单。在我的示例中,这是可行的,现在我必须将其动态化。大脑不能在自动取款机上工作。

谢谢你的帮忙!

使用代码从db获取数据:

代码语言:javascript
复制
<ul id="nav">
<?php
include_once("ond/inc/php/connect.php");
$query = "SELECT * FROM paginas WHERE type = '0'";
$result = mysql_query($query);
while($row = mysql_fetch_object($result)){

echo '<li><a href="?ond='.$row->titel.'">'.$row->titel.'</a>';}
echo '<ul class="sub">';

$query2 = "SELECT * FROM paginas WHERE type = '".$row->id."'";
$result2 = mysql_query($query2);    
while($row2 = mysql_fetch_object($result2))
{
    echo '<li><a href="?ond='.$row2->titel.'">'.$row2->titel.'</a></li>';
}
echo '</ul>'; 
echo '</li>';

?>
</ul>
EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2011-04-07 20:43:13

接下来的几行代码解决了这个问题:

代码语言:javascript
复制
<ul id="nav">
<?php
include_once("ond/inc/php/connect.php");
$query = "SELECT * FROM paginas WHERE type = '0'";
$result = mysql_query($query);
while($row = mysql_fetch_object($result)){

echo '<li><a href="?ond='.$row->titel.'">'.$row->titel.'</a>';

$query2 = "SELECT * FROM paginas WHERE type = '".$row->id."'";
$result2 = mysql_query($query2);    
echo '<ul class="sub">';
while($row2 = mysql_fetch_object($result2))
{   
    echo '<li><a href="?ond='.$row2->titel.'">'.$row2->titel.'</a></li>';


}
    echo '</ul>';
echo '</li>';}



?>
</ul>
票数 1
EN

Stack Overflow用户

发布于 2011-04-07 19:37:09

我会这样做:

首先,将数据作为数组提取出来,并对每个条目进行循环。然后运行如下代码:

代码语言:javascript
复制
$menuArray = array();

if (empty($type)) // If the entry has no "type", then it's a parent
{
    $menuArray[$type]['title'] = $title;
}
else // else, it's a child, so append it to the parent
{
    $menuArray[$type]['subitems'][] = $title;
}

然后,使用$menuArray循环遍历它以创建菜单:

代码语言:javascript
复制
?><ul id="nav"><?php
foreach ($menuArray as $item)
{
    ?><li><a href="#">$item['title']</a><?php
    ?><ul class="sub"><?php

    foreach ($item['subitems'] as $subItem)
    {
        <li><a href="#">$subItem</a></li>
    }

    ?></ul><?php
    ?></li><?php
}
?></ul><?php
票数 1
EN

Stack Overflow用户

发布于 2019-09-08 04:07:06

代码语言:javascript
复制
function load()
{
    global $conn;


    $query = "SELECT *  FROM sub_category WHERE main_category_id='1'";
    $result = mysqli_query($conn,$query);
    while($row = mysqli_fetch_assoc($result)){
        $cat_id=$row['sub_category_id'];

    echo '<li><a href="?id='.$row['sub_category_id'].'">'.$row['sub_category_name'].'</a>';

    $query2 = "SELECT *  FROM categories WHERE sub_category_id='$cat_id'";
    $result2 = mysqli_query($conn,$query2);    
    echo '<ul class="sub">';
    while($row2 = mysqli_fetch_assoc($result2))
    {   
        echo '<li><a href="?id='.$row2['category_id'].'">'.$row2['category_name'].'</a></li>';


    }
        echo '</ul>';
    echo '</li>';}


}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5580230

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档