使用foreach循环在菜单项中显示数组中的数据


Show data from array in menu item with a foreach loop

我得到了一个菜单,我想用joomla动态化(这样我就可以在某个类别下添加一篇文章,该类别是顶级菜单级别,该文章显示在该类别下的下拉列表中)。

这是我自己尝试的一些基本信息。

输出正确数据的查询:

// Het bedrijf
$bedrijf                = "SELECT * FROM `lb_content` WHERE catid = 26 and state = 1";
$bedrijfcon             = $conn->query($bedrijf);
$bedrijfcr              = array();
while ($bedrijfcr[]     = $bedrijfcon->fetch_array());

26是正确id的id。

这是我想要动态的html代码:

<li class="relative f_xs_none m_xs_bottom_5"><a href="javascript:void()" onclick="javascript:goToURL('http://www.website.nl')" class="tr_delay_hover color_light tt_uppercase"><b>Het bedrijf</b></a>
    <!--sub menu-->
    <div class="sub_menu_wrap top_arrow d_xs_none type_2 tr_all_hover clearfix r_corners">
        <ul class="sub_menu">
            <li><a class="color_dark tr_delay_hover" href="home/wie-zijn-wij">Wie zijn wij?</a></li>
            <li><a class="color_dark tr_delay_hover" href="home/onze-showroom">Onze showroom</a></li>
            <li><a class="color_dark tr_delay_hover" href="home/het-bedrijf/de-beste-keus">De beste keus</a></li>
            <li><a class="color_dark tr_delay_hover" href="home/diensten/leveren-producten-voor-doe-het-zelf">Leveren producten voor doe-het-zelf</a></li>
            <li><a class="color_dark tr_delay_hover" href="home/diensten/informatie-voor-aannemers">Informatie voor aannemers</a></li>
            <li><a class="color_dark tr_delay_hover" href="home/diensten/informatie-voor-architecten">Informatie voor architecten</a></li>
        </ul>
    </div>
</li>

我现在的情况是,上面的查询在这个文件中包含的另一个文件中,所以该查询是可用的。

然后我做了这个代码:

<? 
$i = 1;
$arraylist = array();
    foreach($bedrijfcr as $menu1)
    {
        if(!in_array($menu1['id'],$arraylist) && $menu1['id'] != '')
        {
                $arraylist[] = $menu1['id'];
                $menuitem1 = 
                            '<li class="relative f_xs_none m_xs_bottom_5"><a href="http://vanroonenzoon.nl/" class="tr_delay_hover color_light tt_uppercase"><b>'.$menu1['title'].'</b></a>
                            <div class="sub_menu_wrap top_arrow d_xs_none type_2 tr_all_hover clearfix r_corners">
                            <ul class="sub_menu">';
                $sub1 = "SELECT * FROM `lb_content` WHERE catid = 26 order by created DESC";
                $subcon1            = $conn->query($sub1);
                $subcr1             = array();
                while ($subcr1[]    = $subcon1->fetch_array());
        }
        $i++;
        foreach($subcr1 as $submenu1)
        {
            $menuitem1 = '<li><a class="color_dark tr_delay_hover" href="'.GetSubNaam($submenu1['catid']).'/'.$submenu1['alias'].'">'.$submenu1['title'].'</a></li>';
        }
        $menuitem1 = '</ul>
        </div>
        </li>';
    }
    echo = $menuitem1;
?>

它没有给出任何错误,但也没有给出正确的数据。有人知道我做错了什么吗?

提前谢谢。

谢谢你的回答。

这就是我现在得到的输出。它反复循环这个部分,这不是我想要的。他循环所有$menuitem1,而我只希望它循环$subcr1 foreach中的部分。

<li class="relative f_xs_none m_xs_bottom_5"><a href="javascript:void()" onclick="javascript:goToURL(http://www.vanroonenzoon.nl)" class="tr_delay_hover color_light tt_uppercase"><b>Wie zijn wij</b></a>
    <div class="sub_menu_wrap top_arrow d_xs_none type_2 tr_all_hover clearfix r_corners">
    <ul class="sub_menu">
    <li><a class="color_dark tr_delay_hover" href="/"></a></li></ul>
    </div>
</li>

您没有连接字符串。外观:

$menuitem1 = '<li class="relative...';
...
$menuitem1 = '<li><a class="col ...';
...
$menuitem1 = '</ul>...';

使用.=运算符可以附加字符串值。

  <? 
    menuitem1 = "";
    $i = 1;
    $arraylist = array();
        foreach($bedrijfcr as $menu1)
        {
            if(!in_array($menu1['id'],$arraylist) && $menu1['id'] != '')
            {
                    $arraylist[] = $menu1['id'];
                    $menuitem1 .= 
                                '<li class="relative f_xs_none m_xs_bottom_5"><a href="http://vanroonenzoon.nl/" class="tr_delay_hover color_light tt_uppercase"><b>'.$menu1['title'].'</b></a>
                                <div class="sub_menu_wrap top_arrow d_xs_none type_2 tr_all_hover clearfix r_corners">
                                <ul class="sub_menu">';
                    $sub1 = "SELECT * FROM `lb_content` WHERE catid = 26 order by created DESC";
                    $subcon1            = $conn->query($sub1);
                    $subcr1             = array();
                    while ($subcr1[]    = $subcon1->fetch_array());
            }
            $i++;
            foreach($subcr1 as $submenu1)
            {
                $menuitem1 .= '<li><a class="color_dark tr_delay_hover" href="'.GetSubNaam($submenu1['catid']).'/'.$submenu1['alias'].'">'.$submenu1['title'].'</a></li>';
            }
            $menuitem1 .= '</ul>
            </div>
            </li>';
        }
        echo $menuitem1;
    ?>