带有请求URI的动态菜单适用于'/';根,但不是'/php';
下面的代码所做的是检查数组中的所有导航项,从中生成一个html列表,然后检查带有请求URI的动态菜单适用于'/';根,但不是'/php';,php,html,oop,Php,Html,Oop,下面的代码所做的是检查数组中的所有导航项,从中生成一个html列表,然后检查URI匹配项以知道哪个菜单项应显示为活动 一切正常。但有一件事 当我在根目录domain.com上时,菜单中的Home项显示为活动状态。但是当我转到/index.php时,应该会发生同样的事情,但我不希望它们都起作用 我不太确定在我的代码中在哪里或者如何实现它 PHP <?php $GLOBALS['config'] = array( 'navigation' => array( 'H
URI
匹配项以知道哪个菜单项应显示为活动
一切正常。但有一件事
当我在根目录domain.com
上时,菜单中的Home
项显示为活动状态。但是当我转到/index.php
时,应该会发生同样的事情,但我不希望它们都起作用
我不太确定在我的代码中在哪里或者如何实现它
PHP
<?php
$GLOBALS['config'] = array(
'navigation' => array(
'Home' => '/', //this part here
'Sign up' => '/signup.php',
'Login' => '/login.php'
)
);
class Navigation {
public static function get() {
$URI = $_SERVER['REQUEST_URI'];
$navArr = Config::get('navigation');
$navigation = '<ul id="nav">' . "\n";
foreach($navArr as $name => $path) {
$navigation .= ' <li' . (($URI == $path) ? ' class="active"' : false) . '><a href="' . $path . '">' . $name . '</a></li>' . "\n";
}
$navigation .= '</ul>';
return $navigation;
}
}
?>
<?php
$GLOBALS['config'] = array(
'navigation' => array(
'Home' => array('/', '/index.php'),
'Sign up' => array('/signup', '/signup.php'),
'Log in' => array('/login', '/login.php')
)
);
class Navigation {
public static function get() {
$URI = $_SERVER['REQUEST_URI'];
$navArr = Config::get('navigation');
$navigation = '<ul id="nav">' . "\n";
foreach($navArr as $name => $path) {
$navigation .= ' <li' . ((in_array($URI, $path)) ? ' class="active"' : false) . '><a href="' . $path[1] . '">' . $name . '</a></li>' . "\n";
}
$navigation .= '</ul>';
return $navigation;
}
}
?>
index.php不在导航数组中,这就是原因
添加一个条目,如:
'index'=>'/index.php'
这是一个问题,因为您无法按实现方式将两个页面分配给同一个键
或:
在ur htacess上进行重定向,因此/和index.php是相同的
大概是这样的:
第三个选项是使用索引和字段生成数组navitem和page:
我肯定会去htaccessPHP
<?php
$GLOBALS['config'] = array(
'navigation' => array(
'Home' => '/', //this part here
'Sign up' => '/signup.php',
'Login' => '/login.php'
)
);
class Navigation {
public static function get() {
$URI = $_SERVER['REQUEST_URI'];
$navArr = Config::get('navigation');
$navigation = '<ul id="nav">' . "\n";
foreach($navArr as $name => $path) {
$navigation .= ' <li' . (($URI == $path) ? ' class="active"' : false) . '><a href="' . $path . '">' . $name . '</a></li>' . "\n";
}
$navigation .= '</ul>';
return $navigation;
}
}
?>
<?php
$GLOBALS['config'] = array(
'navigation' => array(
'Home' => array('/', '/index.php'),
'Sign up' => array('/signup', '/signup.php'),
'Log in' => array('/login', '/login.php')
)
);
class Navigation {
public static function get() {
$URI = $_SERVER['REQUEST_URI'];
$navArr = Config::get('navigation');
$navigation = '<ul id="nav">' . "\n";
foreach($navArr as $name => $path) {
$navigation .= ' <li' . ((in_array($URI, $path)) ? ' class="active"' : false) . '><a href="' . $path[1] . '">' . $name . '</a></li>' . "\n";
}
$navigation .= '</ul>';
return $navigation;
}
}
?>
如果我添加一个条目,我的菜单中基本上会有两个项目指向同一页面。我不想那样。那是因为你是如何实施的。去吧,那就去吧