2013-10-20 96 views
0

我想为网站制作导航栏。我必须使用foreach循环来显示不同的页面。但是,每当我试图显示他们,他们不链接的网页和他们表现出错误的文字。这里是代码:通过foreach循环显示文本php

<?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/

+1

的'了'标签是空的... – PeeHaa

回答

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是多余的在这个特殊的片段。

+0

谢谢!$ i变量只是有从我瞎搞试图弄明白,哈哈,我得到了这部分工作正常。现在,当我点击链接去特定页面它克给我一个错误: 警告:require(config.php):未能打开流:在第4行/home/gaddough/cit21500/assignment4/products/index.php中没有这样的文件或目录警告:require(config。 php):未能打开流:没有这样的文件或目录在/home/gaddough/cit21500/assignment4/products/index.php在第4行 – user2220653

+0

它看起来像在config.php文件的子文件夹内,这是出在我的主根文件夹中。任何想法如何解决这个问题?代码: <?php // products index file require('config.php'); $ page_title =“产品”; $输出=“Lorem存有悲坐阿梅德,consectetur adipiscing ELIT .... 包括( '/家庭/ gaddough/cit21500/assignment4 /视图/的template.php');? > – user2220653

+0

那么,它依赖包括这个config.php在内有多方面,最直接的方法是简单地改变包含路径,例如从require('config.php')到require('../ config.php'),但是取决于你的项目结构,这很容易变得有点难以维护,一个“更好”的方法可能是让一个页面处理这个配置文件和你的子页面,例如index.php有一个菜单和一个开关($ page ),其中包括'pages/some_page.php'。 – lfk