【问题标题】:Global navigation with active selector (PHP)带活动选择器的全局导航 (PHP)
【发布时间】:2013-10-19 07:46:05
【问题描述】:

我不想在每个页面中重复导航栏代码,而是为导航菜单栏编写一个 PHP 代码的 sn-p 代码,并将该文件包含在相关页面中。我的导航栏菜单的第一个 HTML 代码如下。 (默认选择“用户”。)

<ul>
   <li class="active" ><a href="administrator1.php"><span><B>USERS</B></span></a></li>
   <li><a href="administrator2.php"><span><B>CREATE PROFILE</B></span></a></li>
   <li><a href="administrator3.php"><span><B>PAYMENTS</B></span></a></li>
   <li><a href="administrator4.php"><span><B>DEFENSE</B></span></a></li>
   <li><a href="administrator5.php"><span><B>PROGRESS REPORT</B></span></a></li>
</ul>

所以我把上面的代码改成了 PHP 代码。有这个代码的文件名是'test.php'

<?php
$menu = array(
    'users'          => array('text'=>'USERS',           'url'=>'?p=administrator1.php'),
    'createProfile'  => array('text'=>'CREATE PROFILE',  'url'=>'?p=administrator2.php'),
    'payment'        => array('text'=>'PAYMENTS',        'url'=>'?p=administrator3.php'),
    'defense'        => array('text'=>'DEFENSE',         'url'=>'?p=administrator4.php'),
    'progressReport' => array('text'=>'PROGRESS REPORT', 'url'=>'p=administrator5.php'),);

class Nav {
    public static function GenerateMenu($items) {
        $html = "<ul>";
        foreach($items as $item) {
            $html .= "<li><a href='{$item['url']}' ><span><B>{$item['text']}</B></span> </a></li>";
        }
        $html .= "</ul>";
        return $html;
    }
};
?>

在'administrator1.php'中我调用了上面的函数如下;

<?php 
    include 'test.php';
    echo Nav::GenerateMenu($menu);
?>

我的问题是,如何将“administrator1.php”作为默认选择的菜单列表项以及如何将选定的列表项设置为 CSS 类?

所选列表项应具有“活动”CSS 类。

<li class="active" >

【问题讨论】:

  • 您为什么需要将 HTML 代码转换为 PHP 代码???如果您愿意,您绝对可以include HTML 文件。
  • 我想把它转换成 PHP 代码,这样导航菜单代码就只有一个文件。因此,如果需要更改某些内容,我将只需要编辑一个代码。因为我想将所选项目作为&lt;li class="active"&gt; 放置一个 CSS 类,所以 HTML 代码不起作用!我需要一个 PHP 代码!
  • 所以你关心的其实是&lt;li class="active"&gt;
  • 是的,我想为所选项目添加&lt;li class="active"&gt;,默认情况下它应该是“用户”项目。

标签: php html css navigation


【解决方案1】:

检查当前脚本文件名是否是导航中显示的 url 的一部分。如果是这样,那么将active 类分配给它。

foreach($items as $item) {

if(stristr($item['url'],__FILE__)===FALSE)
  {
    $html .= "<li><a href='{$item['url']}' ><span><B>{$item['text']}</B></span> </a></li>";
  }
  else
  {
    $html .= "<li class='active'><a href='{$item['url']}' ><span><B>{$item['text']}</B></span> </a></li>";
  }

}

【讨论】:

  • 我将 $menu 的每个数组项的 url 更改为 'administrator1.php'、'administrator2.php' 等。但是 class='active' 仍然不起作用,尽管导航栏正常工作!
猜你喜欢
  • 2020-06-02
  • 2016-10-22
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-10-29
  • 1970-01-01
相关资源
最近更新 更多