Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/292.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php Javascript显示/隐藏的困难_Php_Javascript - Fatal编程技术网

Php Javascript显示/隐藏的困难

Php Javascript显示/隐藏的困难,php,javascript,Php,Javascript,我在php中有一个foreach循环,它搜索一个目录,找到任何其他目录,然后在javascript中使用hide/show,子目录名称被制作成链接,下拉显示该特定子目录中的文件。我希望这是有道理的。我的问题是,因为我使用循环查找任何现有子目录,所以我无法为每个子目录提供不同的id。因此,所有链接都具有第一个链接的id,当单击其中任何一个链接时,第一个链接总是会掉下来。我需要为此使用JQuery吗 <!--Code for the javascript part:--> <?ph

我在php中有一个foreach循环,它搜索一个目录,找到任何其他目录,然后在javascript中使用hide/show,子目录名称被制作成链接,下拉显示该特定子目录中的文件。我希望这是有道理的。我的问题是,因为我使用循环查找任何现有子目录,所以我无法为每个子目录提供不同的id。因此,所有链接都具有第一个链接的id,当单击其中任何一个链接时,第一个链接总是会掉下来。我需要为此使用JQuery吗

<!--Code for the javascript part:-->
<?php
<script language="javascript">
    function showOrHide(){ 
        var div = document.getElementById("showOrHideDiv");
        if (div.style.display == "block"){ 
                div.style.display = "none";
        }
        else {
            div.style.display = "block";
        }
    }
</script>
?>

<!-- A subdirectory has been found and is called $subDir -->
<!-- Below is the show/hide part of my html/php code -->

<a href="javascript:showOrHide();"><?php echo $subDir;?></a>
<div id="showOrHideDiv" style="display: none">

<!-- The rest of the code that prints the files from the subdirectory -->

</div>

一种方法是使用计数器来改变ID:

<a href="javascript:showOrHide(<?php echo $counter;?>);"><?php echo $subDir;?></a>
<div id="showOrHideDiv_<?php echo $counter;?>" style="display: none">


为什么在
脚本
标记周围有
?这不是有效的PHP,它是HTML!删除
。你不需要为此使用jQuery,但你必须提供不同的ID,不管是否使用jQuery。+1个好答案(以及我的答案中的疏忽:D)
<script language="javascript">
  function showOrHide(num){ 
    var div = document.getElementById("showOrHideDiv_" + num);
    if (div.style.display == "block"){ 
      div.style.display = "none";
    }
    else {
      div.style.display = "block";
    }
  }
</script>