我是PHP和HTML的新手,我正在创建我的第一个网站,我发现我必须反复重复一个标题,所以我把它放在'Header.php'文件中并包含它现在我有检查他们转到哪个页面的问题。我需要知道他们转到哪个页面,这样我就可以在他们转到的页面上放置一个'class =“active”'。如果时间不长,我可能需要为我编写的代码。即使是一个如何显示所有元素的例子也会有所帮助。无论如何是我的代码
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="content-type" content="text/html; charset=utf-8" />
<title>Metamorphosis Design Free Css Templates</title>
<meta name="keywords" content="" />
<meta name="description" content="" />
<input type="hidden" id="link_is_clicked" name="link_is_clicked" value="0"/>
<link href="styles.css" rel="stylesheet" type="text/css" media="screen" />
<link rel="stylesheet" href="nivo-slider.css" type="text/css" media="screen" />
</head>
<body>
<div id="bg_top">
<div id="wrap_bg">
<div id="wrap">
<div id="header">
<div id="menu">
<ul>
<li class="but1_menu"><a href="index.php"class="active">Home</a></li>
<li class="but2_menu"><a href="blog.php">Blog</a></li>
<li class="but3_menu"><a href="gallery.php">Gallery</a></li>
<li class="but4_menu"><a href="about.php">About Us</a></li>
<li class="but5_menu"><a href="contact.php">Contact Us</a></li>
</ul>
</div>
<div id="logo">
<h1><a href="#">metamorph_strongrey</a></h1>
<a href="#"><small>Small Company Slogan Goes Here</small></a>
</div>
谢谢你的帮助。
答案 0 :(得分:3)
当它是一个像你一样的小清单时,我通常会选择一个简单的if
语句:
<li class="but1_menu"><a href="index.php"<?=(($_SERVER['SCRIPT_NAME']=='index.php')?' class="active"':'');?>>Home</a></li>
<li class="but2_menu"><a href="blog.php"<?=(($_SERVER['SCRIPT_NAME']=='blog.php')?' class="active"':'');?>>Blog</a></li>
<li class="but3_menu"><a href="gallery.php"<?=(($_SERVER['SCRIPT_NAME']=='gallery.php')?' class="active"':'');?>>Gallery</a></li>
<li class="but4_menu"><a href="about.php"<?=(($_SERVER['SCRIPT_NAME']=='about.php')?' class="active"':'');?>>About Us</a></li>
<li class="but5_menu"><a href="contact.php"<?=(($_SERVER['SCRIPT_NAME']=='contact.php')?' class="active"':'');?>>Contact Us</a></li>
这将通过$_SERVER['SCRIPT_NAME']
检查当前脚本的名称,如果匹配,则会回显class="active"
。
答案 1 :(得分:2)
第一步:获取用户正在访问的当前页面
$current_url = substr($_SERVER["SCRIPT_NAME"],strrpos($_SERVER["SCRIPT_NAME"],"/")+1);
第二步:创建一个包含所有菜单链接页面的数组
$all_urls = array('index.php', 'blog.php', 'gallery.php', 'about.php', 'contact.php');
第三步:检查当前网址是否在数组中。如果是,请应用课程
<ul>
<li class="but1_menu"><a href="index.php" <?php if(in_array($current_url, $all_urls)){echo 'class="active"'; } ?>>Home</a></li>
<li class="but2_menu"><a href="blog.php" <?php if(in_array($current_url, $all_urls)){echo 'class="active"'; } ?>>Blog</a></li>
<li class="but3_menu"><a href="gallery.php" <?php if(in_array($current_url, $all_urls)){echo 'class="active"'; } ?>>Gallery</a></li>
<li class="but4_menu"><a href="about.php" <?php if(in_array($current_url, $all_urls)){echo 'class="active"'; } ?>>About Us</a></li>
<li class="but5_menu"><a href="contact.php" <?php if(in_array($current_url, $all_urls)){echo 'class="active"'; } ?>>Contact Us</a></li>
</ul>
答案 2 :(得分:1)
您需要做的就是放置锚标记href
的{{1}}参数,这是一个查询字符串,表示按下了哪个链接。
<a>
现在在PHP代码中,您需要查看$_GET
variable。它是URL中传递的所有参数的关联数组。因此<a href="about.php?action=about">About Us</a>
将等于$_GET['action']
。
当您再次编写标题并希望通过添加类来指示“活动”链接时,您只需测试about
变量的action
元素。
让我们假设您的头文件中有一个像这样的链接数组 -
$_GET
您将循环遍历该数组的内容,以创建具有$headerLinks = array(
'about' => array(
'href'=>'about.php?action=about',
'title'=>'About Us'
),
'home' => array(
'href'=>'home.php?action=home',
'title'=>'Home'
),
'blag' => array(
'href'=>'blag.php?action=blag',
'title'=>'Our Blag'
),
...
);
类的相应链接。
active
答案 3 :(得分:0)
你应该看看这个页面:
http://php.net/manual/en/reserved.variables.server.php
特别是有关REQUEST_URI的部分,这将是您所需要的。只需在if或case声明中检查,并根据需要应用您的课程。
您只需要几行代码来检查导航栏中的uris。
答案 4 :(得分:0)
另一种方法。
您的页面看起来像
<?php
$curr = "gallery";
include('header.php');
?>
其中$ curr变量的值可以在下面的菜单中找到
现在是菜单
<li class="but1_menu"><a <?php echo ($curr == "index" ? "class='active'" : "" ); ?> href="index.php">Home</a></li>
<li class="but2_menu"><a <?php echo ($curr == "blog" ? "class='active'" : "" ); ?> href="blog.php">Blog</a></li>
<li class="but3_menu"><a <?php echo ($curr == "gallery" ? "class='active'" : "" ); ?> href="gallery.php">Gallery</a></li>
<li class="but4_menu"><a <?php echo ($curr == "about_us" ? "class='active'" : "" ); ?> href="about.php">About Us</a></li>
<li class="but5_menu"><a <?php echo ($curr == "contact_us" ? "class='active'" : "" ); ?> href="contact.php">Contact Us</a></li>
为了保持代码清洁,最好使用short if / else语句,因为没有复杂的东西。
我还建议您在<li>
上放置“活动”课程,但这取决于每个开发人员的风格。在一些复杂的菜单中,它会对你有所帮助。