2016-12-12 3 views
0

Итак, я создал меню, но не могу получить ссылку на страницы для работы. В PHPmyadmin у меня есть таблица под названием меню.Не могу получить меню для работы

В таблице вы можете найти ID, имя, ParentID (для подменю) и HREF (эти поля содержат только название страницы, как index.php/news.php и т.д.)

<?php include 'assets/class/dbcon.php'; ?> 

<?php 
    function loop_array($array = array(), $parent_id = 0){ 
     $html = 'http://mywebsite.com/'; 
      global $connection; 
      $result = mysqli_query($connection,"SELECT href FROM menus"); 
      $href = Array(); 
      while ($row = mysqli_fetch_array($result)) { 
      $href = $row['href']; 

      } 
     if(!empty($array[$parent_id])){ 

      echo '<ul class="cssmenu">'; 
      foreach($array[$parent_id] as $items){ 
      echo '<a href="'.$html.$href.'"><li style="z-index: 100;">'; 
      echo $items['name']; 
      loop_array($array, $items['id']); 
      echo '</li></a>'; 
      } 
      echo '</ul>'; 

     }  
    } 

    function display_menus() 
    { 


    global $connection; 
    $query = $connection->query("SELECT * FROM menus"); 
    $array = array(); 

    if(mysqli_num_rows($query)){ 

     while($rows = mysqli_fetch_array($query)){ 

      $array[$rows['parent_id']][] = $rows; 

     } 
     loop_array($array); 
    } 


    } 

    mysqli_close($connection); 
?> 

Идея состоит в том, что когда я нажимаю на тег li, , который загружается http://mywebsite.com/variouspages.php, но теперь это то, что я нажимаю на тег li, который отправляет его обратно на mywebsite.com. Если я выделил столбец href, он отобразит все ссылки href. Поэтому он говорит что-то вроде index.phpnews.phpfotos.php

надеюсь, что кто-то может мне помочь. Благодаря! большая любовь.

+2

Это сбивает с толку тушеное PHP кода и HTML , Что ты пытаешься сделать? Почему это нельзя отделить больше? – tadman

+0

'. $ Html. $ Href.' что это значит? –

+0

Добро пожаловать в StackOverflow! Пожалуйста, проверьте [ask] для получения дополнительной информации о задании хороших вопросов. В этом случае может оказаться полезным для вас и людей, отвечающих, если вы можете предоставить [mcve], иллюстрирующий проблему, с которой вы сталкиваетесь. – Kateract

ответ

2

Google Dev:

<header> 
    <div style="width: 100%; background-color: #383838; border-bottom: 4px solid #cd0000;"> 
     <div class="menu"> 
      <ul class="cssmenu"><a href="http://cvdemarskoppen.nl/"><li style="z-index: 100;">Home</li></a><a href="http://cvdemarskoppen.nl/"><li style="z-index: 100;">Nieuws</li></a><a href="http://cvdemarskoppen.nl/"></a><li style="z-index: 100;"><a href="http://cvdemarskoppen.nl/">De Marskoppen</a><ul class="cssmenu"><a href="http://cvdemarskoppen.nl/"></a><a href="http://cvdemarskoppen.nl/"><li style="z-index: 100;">Foto's</li></a><a href="http://cvdemarskoppen.nl/"><li style="z-index: 100;">Agenda</li></a><a href="http://cvdemarskoppen.nl/"><li style="z-index: 100;">Het Bestuur</li></a><a href="http://cvdemarskoppen.nl/"><li style="z-index: 100;">Historie</li></a><a href="http://cvdemarskoppen.nl/"><li style="z-index: 100;">Commissies</li></a><a href="http://cvdemarskoppen.nl/"><li style="z-index: 100;">Lid worden</li></a></ul></li><a href="http://cvdemarskoppen.nl/"></a><li style="z-index: 100;"><a href="http://cvdemarskoppen.nl/">Garde Officieren</a><ul class="cssmenu"><a href="http://cvdemarskoppen.nl/"></a><a href="http://cvdemarskoppen.nl/"><li style="z-index: 100;">Foto's</li></a><a href="http://cvdemarskoppen.nl/"><li style="z-index: 100;">Agenda</li></a><a href="http://cvdemarskoppen.nl/"><li style="z-index: 100;">Leden</li></a><a href="http://cvdemarskoppen.nl/"><li style="z-index: 100;">Historie</li></a></ul></li><a href="http://cvdemarskoppen.nl/"><li style="z-index: 100;">Vorstenhuis</li></a><a href="http://cvdemarskoppen.nl/"><li style="z-index: 100;">Sponsors</li></a></ul> </div> 
    </div> 
     <div class="header"> 
      <div style="display: none; background-color: #fe0000; width: 30%; float: left; height: 199px; position: absolute; margin: 60px 0 0 0; border-top: 4px solid #3f454b; border-bottom: 4px solid #3f454b;"></div> 
      <div style="width: 100%; float: left;"> 
      <div style="display: none; background-image: url('css/images/header/logo.png'); width: 209px; height: 208px; position: absolute; z-index: 4; float: right; margin: -4 0 0 180;"></div> 
      </div> 
      <div id="cycler" style="overflow:hidden;"> 
       <img class="active" src="css/images/header/1.jpg" alt="Plaats hier een foto." style="width: 100%; height: 150%; margin-top: -10%; display: block; z-index: 3;"> 
       <img src="css/images/header/2.jpg" alt="Plaats hier een foto." style="width: 100%; height: 150%; margin-top: -10%; z-index: 1; display: block;" class=""> 
       <img src="css/images/header/3.jpg" alt="Plaats hier een foto." style="width: 100%; height: 150%; margin-top: -10%; z-index: 1; display: block;" class="">   
      </div> 
     </div> 
     <div class="clear"></div> 
     <script> 
    function cycleImages(){ 
      var $active = $('#cycler .active'); 
      var $next = ($active.next().length > 0) ? $active.next() : $('#cycler img:first'); 
      $next.css('z-index',2);//move the next image up the pile 
      $active.fadeOut(1500,function(){//fade out the top image 
      $active.css('z-index',1).show().removeClass('active');//reset the z-index and unhide the image 
       $next.css('z-index',3).addClass('active');//make the next image the top one 
      }); 
     } 

    $(document).ready(function(){ 
    // run every 7s 
    setInterval('cycleImages()', 7000); 
    }) 
     </script> 

    </header> 

Html я написал для меню.

<header> 
<div style="width: 100%; background-color: #383838; border-bottom: 4px solid #cd0000;"> 
    <div class="menu"> 
     <?php display_menus(); ?> 
    </div> 
</div> 

благодарит за вашу помощь. имейте в виду, это пробная версия и ошибка для меня. Новичок в php, поэтому я все еще изучаю все.

1

Ваша ссылка собирается неверно, так как вы не перебираете значения массива href, чтобы добавить к переменной html.

Вы только перебираете $array[$parent_id], а затем пытаетесь добавить массив $href (не его значения) в переменную $html.

Это по существу дает вам http://mywebsite.com/array или просто http://mywebsite.com/ в DOM.

Вам нужно добавить петлю для $html массива следующим образом:

$html = 'http://mywebsite.com/'; 

$href = array('a', 'b', 'c'); //this comes from your db as per your question 

$link = ''; 
$link .= '<ul>'; 

foreach($href as $val){ 
    $link .= '<a href="' . $html . $val . '"><li style="z-index: 100;"></li></a>'; 
} 

$link .= '</ul>'; 
echo $link; 

Это даст вам следующее в DOM:

<ul> 
<a href="http://mywebsite.com/a"><li style="z-index: 100;"></li></a> 
<a href="http://mywebsite.com/b"><li style="z-index: 100;"></li></a> 
<a href="http://mywebsite.com/c"><li style="z-index: 100;"></li></a> 
</ul> 
+0

Я понимаю, что вы имеете в виду. Но я не могу разместить размещение кода. А a b c вы имеете в виду файлы .php? или колоний. здесь изображение базы данных накапливается https://gyazo.com/dfd8b2cda8cbd1b8f02ba22c985a9056 – Tim

+0

Я использовал «a, b, & c» для примера кода, но это ваши файлы .php, полученные из вашего db, чтобы добавить в '$ html '. Для получения значений 'href' вам нужно будет реорганизовать свой код. Есть несколько способов сделать это, вы можете даже использовать 'array_pop()' внутри первого цикла foreach, чтобы каждый раз получать последнее значение 'href' и добавлять его к' $ html' –

Смежные вопросы