不能让菜单工作

时间:2016-12-12 19:53:18

标签: php mysql

所以我创建了一个菜单但是我无法获得指向页面的链接。 在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 个答案:

答案 0 :(得分:2)

谷歌开发:

   <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 :(得分:1)

您的链接收集不正确,因为您没有循环遍历href数组的值以附加到html变量。

您只是循环遍历$array[$parent_id],然后尝试将$href数组(不是它的值)追加到$html变量之后。

这实质上为您提供了http://mywebsite.com/array或只是{DOM}中的http://mywebsite.com/

您需要为$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>