我有一个使用以下代码的菜单,
<ol id="feature_list">
<li><a href="index.php?action=profile" class="feature_current">Profile</a></li>
<li><a ....></li>
</ol>
单击时会加载相同的页面,我使用以下代码来包含所需的php 文件。
if (($_GET['action']) == 'profile') {
include('profile.php'); }
}
现在我想根据点击的链接动态设置活动类'feature_current'到菜单,我该怎么办?
答案 0 :(得分:1)
<li>
<a href="index.php?action=profile" class="feature_current
<?php if ($_GET['action'] == 'profile') { echo ' active"'; } ?>
">
Profile
</a>
</li>
Elongate更好地显示代码,但在必要时使用PHP内联$_GET
输出一个类。
您的另一个选择是使用javascript并查看location
变量并根据链接应用该类,但服务器端解决方案可能是最佳的。
答案 1 :(得分:1)
与包含文件的方式相同:
<li><a href="...?action=profile"
<?php if(isset($_GET['action']) && $_GET['action']=='profile'){
echo 'class="feature_current"'; } ?>
>...</a>
答案 2 :(得分:0)
$actionClass = isset($_GET['action']) ? $_GET['action'] : '';
switch($actionClass){
default:
$actionClass = 'featured_content';
break;
case 'profile':
$actionClass = 'profile-class-name';
break;
etc....
}
和html
<ol id="feature_list">
<li><a href="index.php?action=profile" class="<?php echo $actionClass;?>">Profile</a></li>
<li><a ....></li>
</ol>
答案 3 :(得分:0)
这是一个非常简单的解决方案:您可以使用PHP从URL中获取您希望的值,并将抓取的值插入jQuery代码,如:
$('.#').addClass('active');
其中“#”是从URL中获取的值。 例如:
<?php
echo '<script type="text/javascript">
$(document).ready(function(){';
if(intval($_GET['PageID']) > 0) {
$from_url = intval($_GET['PageID']);
} else {
if(isset($_GET['action'])) {
$from_url = $_GET['action'];
} else {
$from_url = 'index';
}
}
echo '
$(\'' . $from_url . '\').addClass(\'active\');
});
</script>';
?>
还解释了here。