Php 移动子页面/其他页面时,在引导中保持当前导航菜单处于活动状态
当访问子页面/其他页面时,我想使菜单导航在boostrap中保持活动状态 这是我在标题菜单上的代码:Php 移动子页面/其他页面时,在引导中保持当前导航菜单处于活动状态,php,css,twitter-bootstrap,Php,Css,Twitter Bootstrap,当访问子页面/其他页面时,我想使菜单导航在boostrap中保持活动状态 这是我在标题菜单上的代码: function echoActiveClassIfRequestMatches($requestUri) { $current_file_name = basename($_SERVER['REQUEST_URI'], ".php"); if ($current_file_name == $requestUri) echo 'c
function echoActiveClassIfRequestMatches($requestUri)
{
$current_file_name = basename($_SERVER['REQUEST_URI'], ".php");
if ($current_file_name == $requestUri)
echo 'class="active"';
}
>家
只有当我们访问parrent页面时,此功能才起作用。如果想要访问子页面,导航菜单不保持活动状态。 例如:如果我们访问index.php,导航菜单处于活动状态,但如果我们从index.php访问子页面,导航菜单不处于活动状态。 当我们访问子页面时,如何激活导航菜单?
非常感谢您的回答。简单的回答是您可以使用
$_SERVER['SCRIPT_NAME']
而不是
$_SERVER['REQUEST_URI']
较长的答案是,您可以从函数中处理多个事情,这将阻止您重用代码 请参考以下建议:
<?php
/**
* checks if the user called a certain script
*/
function requestMatches($script_name)
{
return (basename($_SERVER['SCRIPT_NAME'], '.php') == $script_name);
}
/**
* identifies the class for a given request
*/
function getClassForRequest($script_name)
{
return requestMatches($script_name) ? 'active' : '';
}
?>
<ul class="nav navbar-nav navbar-left">
<li class="<?=getClassForRequest('table')?>">
<a href="table.php">Table <span class="sr-only">(current)</span></a>
</li>
<li class="<?=getClassForRequest("index")?>">
<a href="index.php">home <span class="sr-only">(current)</span></a>
</li>
</ul>
简单的答案是你可以使用
$_SERVER['SCRIPT_NAME']
而不是
$_SERVER['REQUEST_URI']
较长的答案是,您可以从函数中处理多个事情,这将阻止您重用代码
请参考以下建议:
<?php
/**
* checks if the user called a certain script
*/
function requestMatches($script_name)
{
return (basename($_SERVER['SCRIPT_NAME'], '.php') == $script_name);
}
/**
* identifies the class for a given request
*/
function getClassForRequest($script_name)
{
return requestMatches($script_name) ? 'active' : '';
}
?>
<ul class="nav navbar-nav navbar-left">
<li class="<?=getClassForRequest('table')?>">
<a href="table.php">Table <span class="sr-only">(current)</span></a>
</li>
<li class="<?=getClassForRequest("index")?>">
<a href="index.php">home <span class="sr-only">(current)</span></a>
</li>
</ul>
最后,我正在使用这段代码来解决我的问题
function echoActiveClassIfRequestMatches($requestUri)
{
$current_file_name = basename($_SERVER['REQUEST_URI'], ".php");
if ($current_file_name == $requestUri)
echo 'class="active"';
}
<!-- menu fuction -->
<ul class="nav navbar-nav navbar-left">
<li id="home" <?=echoActiveClassIfRequestMatches("index")?>><a href="index.php">HOME <span class="sr-only">(current)</span></a></li>
</ul>
<!-- add jquery in each sub page -->
<script src="jquery.min.js"></script>
<script type="text/javascript">
$(document).ready(function () {
$('#home').addClass('active');
// other menu
//$('#table').addClass('active');
});
</script>
函数EchoActiveClassFrequestMatches($requestUri)
{
$current_file_name=basename($_SERVER['REQUEST_URI'],“.php”);
if($current_file_name==$requestUri)
echo“class=”active“;
}
最后,我正在使用这段代码来解决我的问题
function echoActiveClassIfRequestMatches($requestUri)
{
$current_file_name = basename($_SERVER['REQUEST_URI'], ".php");
if ($current_file_name == $requestUri)
echo 'class="active"';
}
<!-- menu fuction -->
<ul class="nav navbar-nav navbar-left">
<li id="home" <?=echoActiveClassIfRequestMatches("index")?>><a href="index.php">HOME <span class="sr-only">(current)</span></a></li>
</ul>
<!-- add jquery in each sub page -->
<script src="jquery.min.js"></script>
<script type="text/javascript">
$(document).ready(function () {
$('#home').addClass('active');
// other menu
//$('#table').addClass('active');
});
</script>
函数EchoActiveClassFrequestMatches($requestUri)
{
$current_file_name=basename($_SERVER['REQUEST_URI'],“.php”);
if($current_file_name==$requestUri)
echo“class=”active“;
}
非常感谢你的回复。。我要试试这个。。谢谢,请告诉我您选择了什么方法,以便我可以更详细地解释。谢谢,我专注于使用Jquery。我的php文件结构是:app/table.php(作为主页)和app/table_edit.php(作为子页面)。所有文件都位于一个文件夹中。如果我使用上述解决方案,它只在主页面中设置活动类。在
var path=window.location.pathname之后代码>添加console.log(路径)
以确保识别正确的uri。另外,执行console.log(项目)
以确保识别正确的脚本名称。这应该与a href
属性完全匹配。如果你需要更多的细节,请告诉我。。谢谢Bogdan先生。。。非常有用非常感谢你的回复。。我要试试这个。。谢谢,请告诉我您选择了什么方法,以便我可以更详细地解释。谢谢,我专注于使用Jquery。我的php文件结构是:app/table.php(作为主页)和app/table_edit.php(作为子页面)。所有文件都位于一个文件夹中。如果我使用上述解决方案,它只在主页面中设置活动类。在var path=window.location.pathname之后代码>添加console.log(路径)
以确保识别正确的uri。另外,执行console.log(项目)
以确保识别正确的脚本名称。这应该与a href
属性完全匹配。如果你需要更多的细节,请告诉我。。谢谢Bogdan先生。。。非常有用