我有一个带有侧栏的网页,它使用了一些css类。如果class =“active”,那么链接将被突出显示。我想这样做,以便在任何页面上,脚本会检查它所在的链接,然后决定要突出显示哪个链接。下面是我所在的位置,但我真的不知道如何继续,请指出我正确和更好的方向!如果我有20个链接,这个脚本会太长了....谢谢!
<?php
$arr = array(
'1' => '/about.php',
'2'=> '/abt-history2.php',
'3' => '/abt-shop.php',
);
$host = $_SERVER['REQUEST_URI'];
if($host == $arr['1'])
{
$class1 = "active";
}
else if ($host == $arr['2'])
{
$class2 = "active";
}
else if ($host == $arr['3'])
{
$class3 = "active";
}
?>
<ul id="navigationSide">
<div style="padding-left:20px; padding-bottom:10px; font-size:16px; font-weight:800; color:#777;">TITLE</div>
<li><a href="<?php print $arr['1']; ?>" class="<?php echo"$class1" ?>">AA</a></li>
<li><a href="<?php print $arr['2']; ?>" class="<?php echo"$class2" ?>">BB</a></li>
</ul>
<div style="padding:5px;"></div>
<ul id="navigationSide">
<div style="padding-left:20px; padding-bottom:10px; font-size:16px; font-weight:800; color:#777;">TITLE2</div>
<li><a href="<?php print $arr['3']; ?>" class="<?php echo"$class3" ?>" >CC</a></li>
</ul>
答案 0 :(得分:2)
Try
<?php
$arr = array(
'1' => 'about.php',
'2'=> 'abt-history.php',
'3' => 'abt-shop.php',
);
foreach($arr as $key => $page){
$class = "";
$currentPage = $_SERVER['REQUEST_URI']; // check its value and get page name
if($currentPage == $page){
$class = 'class ="active"';
}
?>
<li>
<a href ="yourdomainname/<?php echo $page; ?>" <?php echo $class; ?>>
link<?= $key; ?>
</a>
</li>
<php
}
?>
答案 1 :(得分:1)
你的想法没问题。事实是,您的密钥以.php
结束,而您的<li>
类会查找abt-shop
,而不是.php
,因此他们找不到任何内容。
答案 2 :(得分:0)
我只懂
如果我有20个链接,这个脚本会太长了....谢谢!
嗯,那就是for
循环,派上用场。
<?php for($i=0; $i<20; $i++){ ?>
<li>
<a href ="<?php echo $arr['abt-shop']; ?>"
class="<?php echo "$class.$i" ?>">
link<?= $i; ?>
</a>
</li>
<?php } ?>
<强>更新强>
<?php $arr = array( '1' => '/about.php',
'2'=> '/abt-history2.php',
'3' => '/abt-shop.php', );
$host = $_SERVER['REQUEST_URI'];
switch($host){
case $arr['1'];
$class1 = "active";
break;
case $arr['2'];
$class2 = "active";
break;
case $arr['3'];
$class3 = "active";
break;
case $arr['4'];
$class4 = "active";
break;
}
答案 3 :(得分:0)
好的,这是新的,我删除了之前发布的所有内容,这就是另一个答案。
由于$_SERVER['REQUEST_URI']
在我的localhost中获得/Portal/TEST/file.php
,我在脚本中添加了/Portal/TEST/
,您可以根据文件的结构将其删除。
<?php
$arr = array(
'0' => '/Portal/TEST/about.php',
'1'=> '/Portal/TEST/abt-history2.php',
'2' => '/Portal/TEST/abt-shop.php',
'3' => '/Portal/TEST/extra.php',
'3' => '/Portal/TEST/blaze.php',
);
?>
<h2>TITLE</h2>
<?php
for($i=0; $i< count($arr); $i++) {
if($_SERVER['REQUEST_URI'] == $arr[$i]) {
$class = 'active';
?>
<li><a href="<?php print $arr[$i]; ?>" class="<?php echo "$class".$i ?>"><?php echo $class ?>
</a></li> <?php }else {
$class = 'In active';
?>
<li><a href="<?php print $arr[$i]; ?>" class="<?php echo "$class".$i ?>"><?php echo $class ?>
</a></li>
<?php
}
}?>