Introduction

In this article I will create a directory tree with jQuery in PHP. The computer stores files in an organized manner. Using of directory tree you can easily find files. To create a directory tree I will use three files, style.css, menu.js, and index.php.

Example

This is "style.css" for the directory design.

body {

font-family: time new roman;

f-size: 12px;

}

#jQ-menu ul {

list-style-type: none;

}

#jQ-menu a, #jQ-menu li {

color: red;

text-decoration: none;

padding-bottom: 2px;

}

#jQ-menu ul {

left-padding: 12px;

}

This is the "menu.js" file.

$(function () {

$("span.toggle").next().hide();

$("#menu a, #menu span.toggle").hover(function () {

$(this).stop().animate({

fSize: "17px",

leftpadding: "10px",

color: "black"

}, 300);

}, function () {

$(this).stop().animate({

ftSize: "14px",

leftpadding: "0",

color: "#808080"

}, 300);

});

$("span.toggle").css("cursor", "pointer");

$("span.toggle").prepend("+ ");

$("span.toggle").click(function () {

$(this).next().toggle(1000);

var v = $(this).html().substring(0, 1);

if (v == "+")

$(this).html("-" + $(this).html().substring(1));

else if (v == "-")

$(this).html("+" + $(this).html().substring(1));

});

});

This is the "index.php" file for creating the directory tree. In this file we have three functions; they are:

<html>

<head>

<title>Create Directory tree with jQuery</title>

<!-- CSS For The Menu -->

<link rel="stylesheet" href="style.css" />

</head>

<body>

<div id="menu">

<?php

$path = "./";

function makeDir($path = '.')

{

if ($handle = opendir($path))

{

echo "<ul>";

while (false !== ($file = readdir($handle)))

{

if (is_dir($path.$file) && $file != '.' && $file !='..')

printSubDir($file, $path, $queue);

else if ($file != '.' && $file !='..')

$queue[] = $file;

}

printQueue($queue, $path);

echo "</ul>";

}

}

function printQueue($queue, $path)

{

foreach ($queue as $file)

{

printFile($file, $path);

}

}

function printFile($file, $path)

{

echo "<li><a href=\"".$path.$file."\">$file</a></li>";

}

function printSubDir($dir, $path)

{

echo "<li><span class=\"toggle\">$dir</span>";

makeDir($path.$dir."/");

echo "</li>";

}

makeDir($path);

?>

</div>

<!--Add jQuery From the Google AJAX Libraries -->

<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.2.6/jquery.min.js"></script>

<!--jQuery Color Plugin -->

<script type="text/javascript" src="jquery.color.js"></script>

<!-- Import The jQuery Script -->

<script type="text/javascript" src="menu.js"></script>

</body>

</html>

Output

dire1.jpg

Click on the current directory and open the subdirectory or file.

dire2.jpg