我正在尝试为网站制作导航栏。我必须使用foreach循环来显示不同的页面。但是,每当我尝试显示它们时,它们都不会链接页面并显示错误的文本..这是代码:
<?php
//Main Navigation Function
function main_nav(){
$nav_sections = array("home"=>"","products"=>"products/","services"=>"services/",
"about"=>"about/", "contact"=>"contact/");
$output = "<UL>";
$i=0;
foreach($nav_sections as $nav){
$output .= "<LI><A href=" . URL_ROOT . $nav . "></A>" . $nav . "</LI>";
}
echo $output;
}
?>
URL_ROOT是一个定义的常量,它提供了根URL,但它没有通过文本链接页面。这是网站当前显示的内容:http://tomcat.cit.iupui.edu/gaddough/cit21500/assignment4/
答案 0 :(得分:1)
您已经(正确地)将数组设置为键值对,这意味着您必须循环遍历它:
foreach($nav_sections as $title => $link) {
$output .= "<li><a href=" . URL_ROOT . $link . ">" . ucfirst($title) . "</a></li>" . PHP_EOL;
}
ucfirst()
使单词或句子的第一个字母为大写。
此外,在当前循环中,您可以打开并关闭锚点(链接),而无需为其指定任何文本(即<a href...>
和</a>
之间没有任何内容。
最后一点:您希望在$output
或<ul>
个代码之间回显<ol>
,而您的计数器$i
在此特定代码段中是多余的。