show hide accordion tabs取决于php变量会话

时间:2017-01-12 16:54:18

标签: javascript php jquery jquery-ui-accordion

我试图根据会话

中出现的php变量显示手风琴选项卡的数量

我有一个简单的手风琴(见下文)

我有变量的开关语句(见下),我试图找出一种简单的方法来显示一些部分,具体取决于变量active的switch语句。

例如

如果var1出现隐藏section2section3

如果var2出现隐藏section2

我有一个想法(第一个想法)

我可以将不同的手风琴演绎到不同的PHTML页面中并根据语句包含,但这是重复代码很多次,我觉得应该有一个更有效的方法,我隐藏并根据变量显示手风琴选项卡。 / p>

我有一个不同的想法(第二个想法)

给每个部分一个类,然后使用case语句隐藏类

 <?php
        switch ($_SESSION['buy_test_session']) {
            case "var1":
             //--//
                break;
            case "var2":
                ?>
                <style type="text/css">
                    .section1 {display:none;}
                    .section3 {display:none;}
                </style>
        <?php
                break;
            case "var3":
                //--/
                break;

如果所有其他方法都失败了,我的第二个想法会起作用,并且不适合

我当前的代码

手风琴

 <div id="accordion">

  <h3>Section 1</h3>
  <div>
    <p>
   text
    </p>
  </div>

  <h3>Section 2</h3>
  <div>
    <p>
    text
    </p>
  </div>

  <h3>Section 3</h3>
  <div>
    <p>
   text
    </p>
  </div>

  <h3>Section 4</h3>
  <div>
     <p>
   text
    </p>
  </div>

</div>

切换声明

 <?php
            switch ($_SESSION['buy_test_session']) {
                case "var1":
                  //hide section 2 and 3//
                    break;
                case "var2":
                    //hide section 2//
                    break;
                case "var3":
                  //--//
                    break;
                case "var4":
                         //--//
                    break;

                default:
                    echo "Normal";
            }
            ?>

1 个答案:

答案 0 :(得分:0)

简单修复,只需使用类填充每个选项卡,并根据会话隐藏。

<?php
    switch ($_SESSION['buy_test_session']) {
        case "var1":
         //--//
            break;
        case "var2":
            ?>
            <style type="text/css">
                .section1,.section3 {display:none;}
            </style>
    <?php
            break;
        case "var3":
            //--/
            break;