2010-11-29 7 views
0

私のサイトのファイル構造を表示するには、次のPHPコードがあります。これは、私のフォルダとファイルの画像を持つ非常に良い字下げ構造を与えます。JQuery TreeviewとPHP

JQueryをこれに追加してフォルダを折りたたんで展開するにはどうすればよいですか?私は2つのjqueryプラグインを試しましたが、動作しませんでした。

jqueryプラグイン、記事またはコードスニペットを提案できますか?

ありがとうございました!

<?php 
$path = ROOT_PATH; 
$dir_handle = @opendir($path) or die("Unable to open $path"); 
list_dir($dir_handle,$path); 

function list_dir($dir_handle,$path) 
{ 
    echo "<ul>"; 

    while (false !== ($file = readdir($dir_handle))) 
    { 
     $dir =$path.'/'.$file; 
     if(is_dir($dir) && $file != '.' && $file !='..') 
     { 
      $handle = @opendir($dir) or die("undable to open file $file"); 
       echo '<li><a href="#"><input name="" type="image" src="themes/default/images/explore/folder.png" />'.$file.'</a></li>'; 
      list_dir($handle, $dir); 
     } 
     elseif($file != '.' && $file !='..') 
     { 
      echo '<li><a href="?f='.SITE_URL.$file.'"><input name="" type="image" src="themes/default/images/explore/file.png" />'.$file.'</a></li>'; 
     } 
    } 

    echo "</ul>"; 

    closedir($dir_handle); 
} 
?> 
+0

コンテンツの破壊を防止してください。リクエストした場合、アカウントは削除されます。 –

+0

あなたはなぜあなたの投稿をすべて "削除"していますか? –

答えて

0

あなたが持っている構造では、ネストされた<ul>ツリーがありますが、これは比較的簡単です。

あなたのフォルダにはすべてアンカー付きの<li>要素がありますが、それ自体の中でクリック可能な入力イメージがあるのはなぜか分かりません。これらのアンカー、または "フォルダ"と呼ばれる入力にクラスを配置します。次に、すべてのULがルートフォルダとは別に隠れるようにするだけで、ユーザーが関連付けられたフォルダをクリックするとjQueryを使用してネストされた<ul>リストを表示/非表示にするだけです。

「フォルダ」クラスをセットアップすることをお勧めします。次のコードを試してください。

/* if you want to hide all but the root with code */ 
$('ul:gt(0)').hide(); 

$('.folder').click(function() { 
    $(this).parents('li:first').next('ul').slideToggle('slow'); 
    return false; 
}); 
+0

ありがとうございます!私はちょうど私のコードを少し修正しなければならなかったし、素晴らしい作品! –

+0

@Scott:お手伝いします。どのように動作するのか理解していますか? – Orbling