满足某些php条件时动态激活菜单

时间:2015-12-05 12:15:16

标签: javascript php jquery twitter-bootstrap-3 nav-pills

我希望在满足某些php条件时触发标签处于活动状态。

这是我正在使用的bootstrap代码,它是一个nav-pills和Toggable / Dynamic。

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设置为活动状态。

在代码的顶部,我尝试这样做但它无法正常工作

if (!isset($_SESSION['variable1'])){

echo " <script type=\"text/javascript\"> $('.nav-pills
a[href=\"#menu2\"]').tab('show') </script>";

}

但是如果我检查元素,并将上面的JavaScript代码粘贴到控制台中,它就可以了!我似乎无法在我的代码中运行它。主页标签保持活动状态。

3 个答案:

答案 0 :(得分:4)

您正在加载HTML之前执行脚本。

我已经尝试过了,如果你把PHP代码放在<body>的末尾就可以了。

        ...
        </div>
    </div>
    <?php
    if (!isset($_SESSION['variable1'])){

        echo " <script type=\"text/javascript\"> $('.nav-pills
        a[href=\"#menu2\"]').tab('show') </script>";

    }
    ?>
</body>

答案 1 :(得分:0)

您可以尝试使用jquery添加类吗?

<script>
$(document).ready(function(){
  <?php 
     if (!isset($_SESSION['variable1'])){
  }?>
  $(".tab-pane").removeClass("active");
  $("#menu2").addClass("active");
<?php }
  ?>
});
</script>

希望这对你有用......

答案 2 :(得分:0)

我发现了如何让它发挥作用。

我确实把它放在身体的尽头。我犯了一个愚蠢的错误。

实际上发生的事情是语句总是返回false。

if (!isset($_SESSION['variable1'])){

echo " <script type=\"text/javascript\"> $('.nav-pills
a[href=\"#menu2\"]').tab('show') </script>";

}

并没有在里面执行代码。因为$ _SESSION [&#39; variable1&#39;]总是有一个值,因为我从来没有清除它或在某些时候销毁它。我不得不使用session_detroy()来初始化所有内容。它就像一个魅力。

由于