我正在尝试做的是在使用PHP查看子菜单页面时激活主菜单链接,因为我的主菜单位于包含文件中。我在包含文件中的代码是:
<p class="menulinks">
<strong class="hide">Main Menu:</strong>
<a <?php if (strpos($_SERVER['PHP_SELF'], 'index.php')) echo 'class="menulink active"';?> class="menulink" href="index.php">Home</a><span class="hide"> | </span>
<a <?php if (strpos($_SERVER['PHP_SELF'], 'food.php')) echo 'class="menulink active"';?> class="menulink" href="food.php">Food</a><span class="hide"> | </span>
<a <?php if (strpos($_SERVER['PHP_SELF'], 'drinks.php')) echo 'class="menulink active"';?> class="menulink" href="drinks.php">Drink</a><span class="hide"> | </span>
<a <?php if (strpos($_SERVER['PHP_SELF'], 'gallery.php')) echo 'class="menulink active"';?> class="menulink" href="gallery.php">Gallery</a><span class="hide"> | </span>
<a <?php if (strpos($_SERVER['PHP_SELF'], 'contact.php')) echo 'class="menulink active"';?> class="menulink" href="contact.php">Contact</a>
</p>
当我在索引页面上并单击子菜单上的'jobs.php'链接时,上面的'index.php'处于非活动状态,因为您将在'jobs.php'页面上但我仍然希望index.php显示为活动状态。下面这样的东西,但它不起作用,PHP新手,我确信它是基本的东西:
<a <?php if (strpos($_SERVER['PHP_SELF'], 'index.php jobs.php')) echo 'class="menulink active"';?> class="menulink" href="index.php">Home</a>
主菜单位于包含文件中的主要原因是将来更容易更改,因为页面太多了。
答案 0 :(得分:2)
最佳做法是编写自己的功能并通过网站进行检查。然后迭代它们并测试当前是否显示其中一个站点。
示例(已测试):
function isSite(){
$url = $_SERVER['PHP_SELF'];
$sites = func_get_args();
foreach($sites as $site){
if(strpos($url, $site)) return true;
}
return false;
}
所以
if (strpos($_SERVER['PHP_SELF'], 'index.php jobs.php')) echo 'class="menulink active"';
会变成
if (isSite('index.php','jobs.php')) echo 'class="menulink active"';
或者:
if (strpos($_SERVER['PHP_SELF'], 'index.php')) echo 'class="menulink active"';
变为
if (isSite('index.php')) echo 'class="menulink active"';
答案 1 :(得分:0)
我已经改写了wumm的代码并添加了一些东西。
<?php
function is_page() {
$currentPage = $_SERVER['PHP_SELF'];
$pages = func_get_args();
foreach($pages as $page) {
if(strpos($currentPage, $page)) return true;
}
return false;
}
$selected = ' active';
?>
<p class="menulinks">
<strong class="hide">Main Menu:</strong>
<a class="menulink<?php echo is_page('index.php', 'home.php', 'homepage.php') ? $selected : '';?>" href="index.php">Home</a><span class="hide"> | </span>
<a class="menulink<?php echo is_page('food.php') ? $selected : '';?>" href="food.php">Food</a><span class="hide"> | </span>
<a class="menulink<?php echo is_page('drinks.php') ? $selected : '';?>" href="drinks.php">Drink</a><span class="hide"> | </span>
<a class="menulink<?php echo is_page('gallery.php') ? $selected : '';?>" href="gallery.php">Gallery</a><span class="hide"> | </span>
<a class="menulink<?php echo is_page('contact.php') ? $selected : '';?>" href="contact.php">Contact</a>
</p>