将活动类设置为php include菜单

时间:2011-07-07 15:48:36

标签: php

我有一个使用以下代码的菜单,

<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'到菜单,我该怎么办?

4 个答案:

答案 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