如何在将菜单调用为 mysql fetch 数组时使用 javascript 隐藏菜单选项

米哈尔·科图斯

关于下拉菜单有很多答案。但我从数据库中调用菜单项。

如果我单击某个菜单项 ( $table[0]),则' . $table[0] . ' - content显示内容 ( ),如果我再次单击,则内容消失。到现在为止还挺好。

问题是,如果某些内容已经打开并且我单击另一个菜单项,我会同时打开这两个内容。如何只允许打开最后一次选择并仍然保持切换功能......?

我尝试了很多东西,这是其中之一:

<?php
include 'connect_database.php';  
$result = mysqli_query($con, "show tables"); 
while($table = mysqli_fetch_array($result)) { 
echo '<button onclick="' . $table[0] . 'myFunction()">' . $table[0] . '</button><br />
     <div id="' . $table[0] . '" style="display:none;"   class="tabcontent">' . $table[0] . ' - content</div>
     <script>
     function ' . $table[0] . 'myFunction() {
     var x = document.getElementById("' . $table[0] . '");
     if (x.style.display === "none") {
     x.style.display = "block";
     } else {
     x.style.display = "none";
     }}
     </script>';
} 
?>

非常感谢

蓝皮

您的问题是您没有跟踪创建的所有菜单。myFunction就是对所有的人都一样的,所以很可能是足够的定义只有一个:)我会做这样的:

<?php
   include 'connect_database.php';  

   $result = mysqli_query($con, "show tables"); 
   while($table = mysqli_fetch_array($result)) { 
       $name = $table[0];
       echo "<button onclick='myFunction(\"$name\")'>$name</button><br /><div id='$name'  style='display:none;'   class='tabcontent'>$name - content</div>";
   }
?>
<script>
  function myFunction(id) {
     registerId(id);
     hideAll(id);

     var x = document.getElementById(id),
         s = x.style.display;

      x.style.display = (s === "none") ? "block" : "none";
  }
  // register a new id so we know what to hide when needed
  function registerId (id) {
    var m = window.myMenus = window.myMenus || [];

    if(m.indexOf(id) === -1) {
       m.push(id);
    }
  }

  // hide all registered menus except the id
  function hideAll(id) {
    var m = window.myMenus = window.myMenus || [],
        i, l=m.length;

    for(i=0;i<l;i++){
      if(m[i] == id) continue;
      var x = document.getElementById(m[i]);

      x.style.display = 'none';
    }

  }
 </script>

或者您可以跟踪最后打开的一个并仅关闭那个:D

php code remains the same as before
<script>
  function myFunction(id) {
      var x,old;

     if(old = window.lastOpenId) {
        x = document.getElementById(old);
        x.style.display = "none";
        delete window.lastOpenId; 
     }

     if(id != old) {
        x = document.getElementById(id);
        x.style.display = "block";
        window.lastOpenId = id;
     }
  }
</script>

请注意,在这两种情况下,script都在while循环之外和php代码之外,因此只需要打印一次。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何隐藏下拉菜单选项?

来自分类Dev

在操作栏中隐藏菜单选项

来自分类Dev

如何使用Javascript使从属下拉菜单选择菜单显示/隐藏另一个下拉菜单?

来自分类Dev

Android-如何隐藏当前片段的菜单选项

来自分类Dev

Android-如何在没有菜单按钮的手机上使用菜单选项?

来自分类Dev

用户更改菜单选项时如何显示不同的文本?

来自分类Dev

单击菜单选项时如何更改图像按钮

来自分类Dev

如何使用JavaScript隐藏和显示菜单?

来自分类Dev

选择菜单选项未按预期显示或隐藏

来自分类Dev

选择菜单选项未按预期显示或隐藏

来自分类Dev

登录/注销时在选项菜单中隐藏菜单

来自分类Dev

CSS菜单选项

来自分类Dev

底部菜单选项

来自分类Dev

Javascript 在外部点击时隐藏菜单

来自分类Dev

将数组添加到MySQL Fetch

来自分类Dev

使用硒选择下拉菜单选项

来自分类Dev

如何在使用jQuery Selectric打开之前禁用菜单选项?

来自分类Dev

Android:如何在菜单选项中使用Sub_menu类别

来自分类Dev

如何使用菜单选项将活动格式化为另一个活动

来自分类Dev

'BAD REQUEST' 在 JavaScript 中使用 Fetch 方法调用 API 时

来自分类Dev

如何给菜单子菜单选项

来自分类Dev

JavaScript将选择菜单选项附加到div标签

来自分类Dev

使用JavaScript隐藏CSS下拉菜单

来自分类Dev

如何基于javascript中的复选框更改下拉菜单选项?

来自分类Dev

根据数组值的下拉菜单的jQuery隐藏选项

来自分类Dev

根据数组值的下拉菜单的jQuery隐藏选项

来自分类Dev

每当在Javascript中使用fetch()时,如何执行函数?

来自分类Dev

如何在Angular中组合两个下拉菜单时隐藏下拉菜单中的特定选项

来自分类Dev

单击按钮时如何在javascript中隐藏/显示下拉菜单

Related 相关文章

  1. 1

    如何隐藏下拉菜单选项?

  2. 2

    在操作栏中隐藏菜单选项

  3. 3

    如何使用Javascript使从属下拉菜单选择菜单显示/隐藏另一个下拉菜单?

  4. 4

    Android-如何隐藏当前片段的菜单选项

  5. 5

    Android-如何在没有菜单按钮的手机上使用菜单选项?

  6. 6

    用户更改菜单选项时如何显示不同的文本?

  7. 7

    单击菜单选项时如何更改图像按钮

  8. 8

    如何使用JavaScript隐藏和显示菜单?

  9. 9

    选择菜单选项未按预期显示或隐藏

  10. 10

    选择菜单选项未按预期显示或隐藏

  11. 11

    登录/注销时在选项菜单中隐藏菜单

  12. 12

    CSS菜单选项

  13. 13

    底部菜单选项

  14. 14

    Javascript 在外部点击时隐藏菜单

  15. 15

    将数组添加到MySQL Fetch

  16. 16

    使用硒选择下拉菜单选项

  17. 17

    如何在使用jQuery Selectric打开之前禁用菜单选项?

  18. 18

    Android:如何在菜单选项中使用Sub_menu类别

  19. 19

    如何使用菜单选项将活动格式化为另一个活动

  20. 20

    'BAD REQUEST' 在 JavaScript 中使用 Fetch 方法调用 API 时

  21. 21

    如何给菜单子菜单选项

  22. 22

    JavaScript将选择菜单选项附加到div标签

  23. 23

    使用JavaScript隐藏CSS下拉菜单

  24. 24

    如何基于javascript中的复选框更改下拉菜单选项?

  25. 25

    根据数组值的下拉菜单的jQuery隐藏选项

  26. 26

    根据数组值的下拉菜单的jQuery隐藏选项

  27. 27

    每当在Javascript中使用fetch()时,如何执行函数?

  28. 28

    如何在Angular中组合两个下拉菜单时隐藏下拉菜单中的特定选项

  29. 29

    单击按钮时如何在javascript中隐藏/显示下拉菜单

热门标签

归档