所以我创建了一个菜单但是我无法获得指向页面的链接。 在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
希望有人可以帮助我。谢谢!非常喜欢。
答案 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>