2015-11-03 30 views
1

我得到了一個菜單,我想用joomla動態化(所以我可以在某個類別下添加一篇文章,該類別是頂級菜單級別,並且顯示該文章在類別下拉列表中)。使用foreach循環在菜單項中顯示數組中的數據

這是我用來嘗試自己的一些基本信息。

輸出正確的數據的查詢:

// 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> 
+0

你得到的結果是什麼? – mic4ael

+0

沒有。該列表現在是硬編碼的,但如果我刪除它,整個菜單按鈕就消失了。我之前修正了一些錯誤,因此查詢是正確的。 – twan

回答

2

你不是串聯你的字符串。看:

$menuitem1 = '<li class="relative...'; 

... 

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

... 

$menuitem1 = '</ul>...'; 

使用.=運營商追加一個字符串值。

+0

是的,你說得對。至少它現在顯示正確的數據:)只有在正確的CSS。它將數據作爲頂級菜單項輸出,而不是作爲下拉項。就好像它在循環頂層菜單項(類別而不是文章)。好像$ menu1正在循環播放,但我希望$ submenu1循環播放。 – twan

+0

我的猜測是你的SQL不正確。 '選擇*從lb_content WHERE catid = 26按創建的DESC順序... ...你怎麼知道這些子菜單應該在哪個父菜單項下?這個SQL是否也包含父菜單項(catid = 26)? –

+0

可能..但是,parent_id僅適用於類別。文章使用「連接」到父類別的正確ID的catid。我不想輸出任何類別,只是某個類別下的文章(id爲26的類別) – twan

1
<? 
    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; 

    ?> 
+0

這將文章顯示爲普通菜單,而不是下拉菜單。所有其他菜單項也被移除/從屏幕中取出:/ – twan

相關問題