Create New Item
Item Type
File
Folder
Item Name
Search file in folder and subfolders...
Are you sure want to rename?
File Manager
/
Prog
:
arbre_multi01.php
Advanced Search
Upload
New Item
Settings
Back
Back Up
Advanced Editor
Save
<?php // Exemple de fichiers et de leurs versions $files = [ 'document.txt' => ['version1', 'version2', 'version3'], 'image.png' => ['version1', 'version2'], 'script.php' => ['version1'] ]; // Initialisation du tableau multidimensionnel $multidimensionalArray = []; foreach ($files as $file => $versions) { // Création de l'entrée pour chaque fichier $entry = [ 'fichier' => $file, 'children' => [] ]; // Ajout des versions au tableau children foreach ($versions as $version) { $entry['children'][] = [ 'fichier' => $version ]; } // Ajout de l'entrée au tableau principal $multidimensionalArray[] = $entry; } // Conversion du tableau en JSON $jsonData = json_encode($multidimensionalArray); ?> <!DOCTYPE html> <html lang="fr"> <head> <meta charset="UTF-8"> <title>Tree View</title> <style> .children { display: none; margin-left: 20px; } .folder { cursor: pointer; font-weight: bold; } </style> </head> <body> <div id="treeView"></div> <script> // Données JSON provenant de PHP const data = <?php echo $jsonData; ?>; // Fonction pour générer l'arbre function generateTree(data) { const ul = document.createElement('ul'); data.forEach(item => { const li = document.createElement('li'); li.className = 'folder'; li.textContent = item.fichier; const childrenUl = document.createElement('ul'); childrenUl.className = 'children'; item.children.forEach(child => { const childLi = document.createElement('li'); childLi.textContent = child.fichier; childrenUl.appendChild(childLi); }); li.appendChild(childrenUl); ul.appendChild(li); // Ajouter un gestionnaire d'événements pour le clic sur le nom du fichier seulement li.addEventListener('click', function(event) { event.stopPropagation(); // Empêche la propagation de l'événement // Toggle l'affichage des enfants uniquement si l'élément cliqué est le nom du fichier if (event.target === li) { childrenUl.style.display = childrenUl.style.display === 'none' || childrenUl.style.display === '' ? 'block' : 'none'; } }); }); return ul; } // Générer l'arbre et l'ajouter à la page document.getElementById('treeView').appendChild(generateTree(data)); </script> </body> </html>