0

ディレクトリを検索し、他のディレクトリを見つけるphpのforeachループがあり、javascriptで非表示/表示を使用すると、サブディレクトリ名がドロップダウンしてその特定のサブディレクトリ内のファイルを表示するリンクになります。それが理にかなっていることを願っています。私が抱えている問題は、現在のサブディレクトリを見つけるためにループを使用しているため、各サブディレクトリに異なる 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>
4

1 に答える 1

2

1 つのアプローチは、カウンターを使用し、それを使用して ID を変更することです。

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

次に、JavaScript が次のように変更されます。

<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>
于 2013-05-30T21:48:34.527 に答える