Create New Item
Item Type
File
Folder
Item Name
Search file in folder and subfolders...
Are you sure want to rename?
File Manager
/
DCIM
/
2024_PHP
:
tree_view02.php
Advanced Search
Upload
New Item
Settings
Back
Back Up
Advanced Editor
Save
<!DOCTYPE html> <html lang="fr"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Tree Viewer</title> <style> ul { list-style-type: none; padding-left: 20px; } .toggle { cursor: pointer; color: blue; text-decoration: underline; } </style> </head> <body> <h1>Arborescence des fichiers</h1> <ul id="fileTree"></ul> <script> const filesData = [ { "name": "fichier1", "children": [ { "name": "fichier2" }, { "name": "fichier3" } ] }, { "name": "toto1", "children": [ { "name": "toto2" }, { "name": "toto3" }, { "name": "toto4" } ] } ]; function createTree(files) { const ul = document.createElement('ul'); files.forEach(file => { const li = document.createElement('li'); const span = document.createElement('span'); span.classList.add('toggle'); span.textContent = file.name; li.appendChild(span); if (file.children) { const childUl = createTree(file.children); li.appendChild(childUl); } ul.appendChild(li); }); return ul; } const fileTree = createTree(filesData); document.getElementById('fileTree').appendChild(fileTree); document.querySelectorAll('.toggle').forEach(item => { item.addEventListener('click', event => { const nextUl = item.nextElementSibling; if (nextUl) { nextUl.style.display = nextUl.style.display === 'none' || nextUl.style.display === '' ? 'block' : 'none'; } }); }); // Initial state: hide all nested lists /*document.querySelectorAll('#fileTree ul').forEach(ul => { ul.style.display = 'none'; });*/ </script> <script> // Générer le tableau JSON avec PHP const filesDataxx = <?php $filesData = [ [ "name" => "fichier1", "children" => [ ["name" => "fichier2"], ["name" => "fichier3"] ] ], [ "name" => "toto1", "children" => [ ["name" => "toto2"], ["name" => "toto3"], ["name" => "toto4"] ] ] ]; echo json_encode($filesDataxx); ?>; </script> </body> </html>