检查是否单击了按钮以及单击了什么

时间:2012-08-10 19:16:26

标签: php html

我是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>

谢谢你的帮助。

5 个答案:

答案 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>上放置“活动”课程,但这取决于每个开发人员的风格。在一些复杂的菜单中,它会对你有所帮助。