使用这里规定的方法/答案:php 中的动态导航
我想添加一些页面链接作为子菜单。
我已经在发挥作用(来自上一个回答的问题)
<?php
$pages = array(
'index.php' => 'Home',
'about.php' => 'About',
'contact.php' => 'Contact',
'faq.php' => 'FAQ',
'tutorials.php' => 'Tutorials',
) ;
$currentPage = basename($_SERVER['REQUEST_URI']) ;
?>
<div id="menu">
<ul id="menuList">
<?php foreach ($pages as $filename => $pageTitle) {
if ($filename == $currentPage) { ?>
<li class="current"><?php echo $pageTitle ; ?></li>
<?php } else { ?>
<li><a href="<?php echo $filename ; ?>"><?php echo $pageTitle ; ?></a></li>
<?php
} //if
} //foreach
?>
</ul>
</div>
我想做的是能够将子菜单项添加到"关于"菜单项或"常见问题解答"菜单中。
虽然我迷失在狩猎和啄食的 php 部分,直到有什么东西起作用。 :)
当然,由于它最多只是一个 10 页的网站,我可以简单地在每个页面中都有菜单代码。但那会是什么样的学习实验呢?:)
提前感谢您对这位"设计师-想成为编码员"的任何见解
非常感谢 Fanis 上面的代码
[SPAGATTI CODE ALERT]
你可以试试这个,
<?php
$pages = array(
'index.php' => 'Home',
'about.php' => array('pageTitle' => 'About', 'subpages' => array(
'about1.php' => 'About subpage #1',
'about2.php' => 'About subpage #2',
'about3.php' => 'About subpage #3')),
'contact.php' => 'Contact',
'faq.php' => 'FAQ',
'tutorials.php' => 'Tutorials',
) ;
$currentPage = basename($_SERVER['REQUEST_URI']) ;
?>
<div id="menu">
<ul id="menuList">
<?php foreach ($pages as $filename => $value) {
if (is_array ($value)) {
$pageTitle = $value ['pageTitle'];
} else {
$pageTitle = $value;
}
if ($filename == $currentPage) {
$attr_current = ' class="current"';
} else {
$attr_current = '';
}
?>
<li<?php echo $attr_current; ?>><a href="<?php echo $filename; ?>"><?php echo $pageTitle ; ?></a>
<?php if (is_array ($value)) { ?>
<ul id="submenuList">
<?php foreach ($value ['subpages'] as $subfilename => $subpageTitle) { ?>
<li><a href="<?php echo $subfilename; ?>"><?php echo $subpageTitle ; ?></a></li>
<?php } ?>
</ul>
<?php } ?>
</li>
<?php } //foreach ?>
</ul>
</div>
如您所见,它不是有史以来最干净的解决方案,因此,如果我要做这样的事情,我会像这样编写上面的代码:
<?php
$pages = array(
'index.php' => 'Home',
'about.php' => array('pageTitle' => 'About', 'subpages' => array(
'about1.php' => 'About subpage #1',
'about2.php' => 'About subpage #2',
'about3.php' => 'About subpage #3')),
'contact.php' => 'Contact',
'faq.php' => 'FAQ',
'tutorials.php' => 'Tutorials',
) ;
$currentPage = basename($_SERVER['REQUEST_URI']) ;
?>
<div id="menu">
<ul id="menuList">
<?php foreach ($pages as $filename => $value):
$pageTitle = is_array ($value) ? $value ['pageTitle'] : $value;
$attr_current = $filename == $currentPage ? ' class="current"' : '';
?>
<li<?=$attr_current?>><a href="<?=$filename?>"><?=$pageTitle?></a>
<?php if (is_array ($value)): ?>
<ul id="submenuList">
<?php foreach ($value ['subpages'] as $subfilename => $subpageTitle): ?>
<li><a href="<?=$subfilename?>"><?=$subpageTitle?></a></li>
<?php endforeach; ?>
</ul>
<?php endif; ?>
</li>
<?php endforeach; ?>
</ul>
</div>
也不是很整洁,但是..
如果您想使用后者,请记住:
- 它使用控制结构的替代语法
- 它使用短标签
<?=
您应该在此处阅读以查看是否可以使用它 - 在此处阅读有关您必须用于
submenuList
的 CSS 的信息