满足某些 php 条件时动态激活菜单
Activating a menu dynamically when some php condition is met
我想在满足某些 php 条件时触发一个选项卡处于活动状态。
这是我正在使用的 bootstrap 代码,它是一个导航丸和可切换/动态。
https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/css/bootstrap.min.css
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/js/bootstrap.min.js"></script>
<ul class="nav nav-pills">
<li class="active"><a data-toggle="pill" href="#home">Home</a></li>
<li><a data-toggle="pill" href="#menu1">Menu 1</a></li>
<li><a data-toggle="pill" href="#menu2">Menu 2</a></li>
</ul>
<div class="tab-content">
<div id="home" class="tab-pane fade in active">
<h3>HOME</h3>
<p>Some content.</p>
</div>
<div id="menu1" class="tab-pane fade">
<h3>Menu 1</h3>
<p>Some content in menu 1.</p>
</div>
<div id="menu2" class="tab-pane fade">
<h3>Menu 2</h3>
<p>Some content in menu 2.</p>
</div>
</div>
默认情况下,“主页”选项卡处于活动状态。在加载页面之前,我想检查是否设置了全局变量,即 $_SESSION['variable1']
。如果没有设置,那我应该把menu2设置为active
在代码的顶部,我尝试这样做但没有成功
if (!isset($_SESSION['variable1'])){
echo " <script type=\"text/javascript\"> $('.nav-pills
a[href=\"#menu2\"]').tab('show') </script>";
}
但是,如果我检查元素,并将上面的 JavaScript 代码粘贴到控制台中,它就会起作用!不过,我似乎无法在我的代码中 运行 它。 “主页”选项卡保持活动状态。
您正在加载 HTML 之前执行脚本。
我已经试过了,如果你把 PHP 代码放在 <body>
.
的末尾就可以了
...
</div>
</div>
<?php
if (!isset($_SESSION['variable1'])){
echo " <script type=\"text/javascript\"> $('.nav-pills
a[href=\"#menu2\"]').tab('show') </script>";
}
?>
</body>
您可以尝试使用 jquery 添加 class 吗?
<script>
$(document).ready(function(){
<?php
if (!isset($_SESSION['variable1'])){
}?>
$(".tab-pane").removeClass("active");
$("#menu2").addClass("active");
<?php }
?>
});
</script>
希望这对你有用...
我找到了如何让它发挥作用。
我确实把它放在正文的末尾了。我犯了一个愚蠢的错误。
实际上发生的是声明总是return false。
if (!isset($_SESSION['variable1'])){
echo " <script type=\"text/javascript\"> $('.nav-pills
a[href=\"#menu2\"]').tab('show') </script>";
}
并没有执行里面的代码。因为 $_SESSION['variable1'] 总是有一个值,因为我从来没有在某个时候清除或销毁它。我不得不使用 session_detroy()
来初始化一切。它就像一个魅力。
谢谢
我想在满足某些 php 条件时触发一个选项卡处于活动状态。
这是我正在使用的 bootstrap 代码,它是一个导航丸和可切换/动态。
https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/css/bootstrap.min.css
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/js/bootstrap.min.js"></script>
<ul class="nav nav-pills">
<li class="active"><a data-toggle="pill" href="#home">Home</a></li>
<li><a data-toggle="pill" href="#menu1">Menu 1</a></li>
<li><a data-toggle="pill" href="#menu2">Menu 2</a></li>
</ul>
<div class="tab-content">
<div id="home" class="tab-pane fade in active">
<h3>HOME</h3>
<p>Some content.</p>
</div>
<div id="menu1" class="tab-pane fade">
<h3>Menu 1</h3>
<p>Some content in menu 1.</p>
</div>
<div id="menu2" class="tab-pane fade">
<h3>Menu 2</h3>
<p>Some content in menu 2.</p>
</div>
</div>
默认情况下,“主页”选项卡处于活动状态。在加载页面之前,我想检查是否设置了全局变量,即 $_SESSION['variable1']
。如果没有设置,那我应该把menu2设置为active
在代码的顶部,我尝试这样做但没有成功
if (!isset($_SESSION['variable1'])){
echo " <script type=\"text/javascript\"> $('.nav-pills
a[href=\"#menu2\"]').tab('show') </script>";
}
但是,如果我检查元素,并将上面的 JavaScript 代码粘贴到控制台中,它就会起作用!不过,我似乎无法在我的代码中 运行 它。 “主页”选项卡保持活动状态。
您正在加载 HTML 之前执行脚本。
我已经试过了,如果你把 PHP 代码放在 <body>
.
...
</div>
</div>
<?php
if (!isset($_SESSION['variable1'])){
echo " <script type=\"text/javascript\"> $('.nav-pills
a[href=\"#menu2\"]').tab('show') </script>";
}
?>
</body>
您可以尝试使用 jquery 添加 class 吗?
<script>
$(document).ready(function(){
<?php
if (!isset($_SESSION['variable1'])){
}?>
$(".tab-pane").removeClass("active");
$("#menu2").addClass("active");
<?php }
?>
});
</script>
希望这对你有用...
我找到了如何让它发挥作用。
我确实把它放在正文的末尾了。我犯了一个愚蠢的错误。
实际上发生的是声明总是return false。
if (!isset($_SESSION['variable1'])){
echo " <script type=\"text/javascript\"> $('.nav-pills
a[href=\"#menu2\"]').tab('show') </script>";
}
并没有执行里面的代码。因为 $_SESSION['variable1'] 总是有一个值,因为我从来没有在某个时候清除或销毁它。我不得不使用 session_detroy()
来初始化一切。它就像一个魅力。
谢谢