0

これを理解しようとしている間、私は次のような途切れ途切れのコードを扱っています。

<?php $curURL = ROOT.$_SERVER['REQUEST_URI']; ?>
            <li><a href="<?php $href = APP_ROOT; echo $href; ?>" class="<?php if($href == $curURL) { ?>main_active<?php } ?>">HOME</a></li>
            <li><a href="<?php $href = APP_ROOT.'about'; echo $href; ?>" class="<?php if($href == $curURL) { ?>main_active<?php } ?>">ABOUT</a></li>
            <li><a href="<?php $href = APP_ROOT.'portfolio'; echo $href; ?>" class="<?php if($href == $curURL) { ?>main_active<?php } ?>">PORTFOLIO</a></li>
            <li><a href="<?php $href = APP_ROOT.'services'; echo $href; ?>" class="<?php if($href == $curURL) { ?>main_active<?php } ?>">SERVICES</a></li>
            <li><a href="<?php $href = APP_ROOT.'blog'; echo $href; ?>" class="<?php if($href == $curURL) { ?>main_active<?php } ?>">BLOG</a></li>
            <li><a href="<?php $href = APP_ROOT.'contact'; echo $href; ?>" class="<?php if($href == $curURL) { ?>main_active<?php } ?>">CONTACT</a></li>

私が現在得ている結果は、選択したページの URL にいる場合(ex. http://localhost/myapp/index/)、それに応じて css スタイルが変更されるということです。私が期待しているのは、そのページのサブ URL にいる場合でも、css スタイルが変更されたままになることです(ex. http://localhost/myapp/index/dosomething/)。私はしばらくの間、この壁に頭をぶつけていました。

4

2 に答える 2

1

これは、私のサイトの1つで行う方法です。これはアクティブなリンクにクラスを適用するサンプルですが、考え方は同じです...

PHP

$current_url = "http://".$_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI'];
$fullPath = parse_url($current_url, PHP_URL_PATH);
$prepare = explode('/',$fullPath);
$path = "/" . $prepare[1];

HTML

<li><a href="location.php"<?php if($path == $thePath) { echo 'class="active"';}?>>Link Title</a>
于 2012-07-31T00:29:22.713 に答える
0

それを行う 1 つの方法は、パスを分解して構造を確認することです。たとえば、パスが myapp/index/dosomething の場合、そのパスを取得し、文字列を "/" で分割して配列を作成します。次に、array[2] が何であるかを確認し、それに応じてスタイルを設定します。

于 2012-07-31T00:27:21.410 に答える