だから私は答えを見つけるために1時間SOを検索し、またさまざまな方法を試しました これを含む
ナビゲーションと一緒に自分のページを含めようとしています。しかし、正しいページでは、リストアイテムにactive
のクラスが必要です。ナビゲーションはheader.phpにあり、現在は次のようになっています。
<nav>
<ul>
<li class="active"> <a href="/">Home</a> </li>
<li> <a href="#">Apps</a> </li>
<li> <a href="#">Forums</a> </li>
</ul>
</nav>
まず、JS(jQuery)が優れているのか、それともPHPが優れているのか)、どちらも機能するかどうかは関係ありません。
また、私はPHPで、学ぼうとしているのは少し新しいです。
使用するのが最も簡単な(うまくいけば)方法は何でしょうか?したがって、ナビゲーションを与えるためだけに多くのコードを変更する必要はありませんclass="active"
$page
変数(現在表示しているページの名前が含まれている)があると仮定します。
<nav>
<ul>
<li class="<?php echo ($page == "home" ? "active" : "")?>"> <a href="/">Home</a> </li>
<li class="<?php echo ($page == "apps" ? "active" : "")?>"> <a href="#">Apps</a> </li>
<li class="<?php echo ($page == "forums" ? "active" : "")?>"> <a href="#">Forums</a> </li>
</ul>
</nav>
これは、他の変数を追加する必要がない簡単な方法です。
<li class="<?php echo ($_SERVER['PHP_SELF'] == "/index.php" ? "active" : "");?>">
<a href="index.php">Start</a>
</li>
<li class="<?php echo ($_SERVER['PHP_SELF'] == "/about.php" ? "active" : "");?>">
<a href="about.php">About</a>
</li>
<li class="<?php echo ($_SERVER['PHP_SELF'] == "/practices.php" ? "active" : "");?>">
<a href="practices.php">Practices</a>
</li>
クエリ文字列を使用している場合exmaple.com?page_id=Apps
phpよりもページIDを渡すには、このことに取り組むことができます
$ page_id = $ _REQUEST ['page_id'];
<ul>
<li class="<?php echo ($page_id == "Home" ? "active" : "");?>">
<a href="/">Home</a>
</li>
<li class="<?php echo ($page_id == "Apps" ? "active" : "");?>">
<a href="#">Apps</a>
</li>
<li class="<?php echo ($page_id == "Forums" ? "active" : ""); ?>">
<a href="#">Forums</a>
</li>
</ul>
Basename関数を追加します。その後、それは私が望むように動作します。
ページヘッダーの使用:
<?php $loc = this.location; ?>
次に、すべてのリンクで次を追加します。
<?php(this.href == $loc) ? echo 'class="active"' : '' ?>
$_SERVER
の前にbasename
関数を追加します。私はそれがうまくいくことを願っています。
echo (basename($_SERVER['PHP_SELF']) == 'yourPageName' ?'active' : " ");
index.phpページで変数$ page = "index.php"を定義し、他のページではページ名に応じて変数値を変更します
<li class="<?php echo ($page == "index.php" ? "active" : "")?>">
<a href="index.php">Home</a>
</li>
<li class="<?php echo ($page == "about.php" ? "active" : "")?>">
<a href="about.php">About</a>
</li>
<li class="<?php echo ($page == "service.php" ? "active" : "")?>">
<a href="service.php">Services</a>
</li>
<li class="<?php echo ($page == "contact.php" ? "active" : "")?>">
<a href="contact.php">Contact</a>
</li>
$page_url = $_SERVER['QUERY_STRING'];
$s = explode("&",$page_url);
//print $s[0];
$page = $s[0];
function createTopNav($page)
{
$pages = array(
array(
'name'=>'Feeder',
'link'=>'page=feeder'
),
array(
'name'=>'Services',
'link'=>'page=services'
),
array(
'name'=>'Development',
'link'=>'page=development'
),
array(
'name'=>'Design',
'link'=>'page=design'
),
);
$res = "";
foreach($pages as $key=>$val)
{
if($val['link']==$page)
{
$res.= "<a class=\"active\" href=\"?"
.$val['link'].
"\">"
.$val['name'].
"</a>";
}
else
{
$res.= "<a class=\"\" href=\"?"
.$val['link'].
"\" >"
.$val['name'].
"</a>";
}
}
$res.="";
return $res;
}
echo createTopNav($page);
JQueryを使用したくない場合、またはPHP-次に実行できます:
<li>
要素にIDまたは異なるCLASSを指定します。<head>
セクションでCSSを使用して「アクティブ」スタイルを定義します。