0

我正在尝试为网站制作导航栏。我必须使用 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/

4

1 回答 1

1

您已经(正确地)将数组设置为键值对,这意味着您必须像这样循环遍历它:

foreach($nav_sections as $title => $link) {
    $output .= "<li><a href=" . URL_ROOT . $link . ">" . ucfirst($title) . "</a></li>" . PHP_EOL;
}

ucfirst()使单词或句子的第一个字母大写。

此外,在您当前的循环中,您打开和关闭锚点(链接)而不为其分配任何文本(即<a href...>和之间没有任何内容</a>

最后一点:您需要回显$outputbetween<ul><ol>标签,而您的计数器$i在此特定代码段中是多余的。

于 2013-10-20T01:46:02.583 回答