Accueil > Forum > > > > Problème récursivité pour arborescence de fichier
Problème récursivité pour arborescence de fichier
lundi 16 février 2009 à 12:38:24 |
Problème récursivité pour arborescence de fichier

codbooster
|
Bonjour à tous, et merci de à vous de prendre du temps pour lire mon post ... Je post aujourd'hui car j'ai un problème concernant une arborescence de fichier. Je vais essayer d'être le plus explicite possible ...
Je liste tout les dossiers, sous-dossier et fichier, puis je les caches, pour après les afficher dans des <div> en Javascript et Css. Le problème arrive lorsque j'ai beaucoup de sous dossiers, ma fonction récursive ne semble pas être totalement efficace, car mais identifiants de <div> sont mal incrémentés, et ducoup mais div ne sont pas unique, ce qui crée un conflit et lorsque je click sur un lien pour afficher un div, c'est un autre qui s'affiche ...
Un exemple puis le code :) :
trois dossier : test1, test2, test3 1 sous dossier dans chaque dossier : test14 dans test1, test24 dans test2 et test34 dans test3
Lorsque je click sur test2, c'est le sous dossier test14 qui va apparaitre ... Celà n'arrive que lorsque j'ai beaucoup de dossier ... donc l'example est simplifié ...
Je vais maintenant vous montrer le code de ma fonction :
function list_Dossier($dirname,$monNbDossier, $choix = '', $monTableau='') { $dir = opendir($dirname); $nbDossier=$monNbDossier; $nbDossier++; echo $nbDossier; while($file = readdir($dir)) { //-----------------Début de la partie de tri entre fichier et dossier****************** /* tableaux */ $tab_dir = array(); $tab_file = array(); /* extraction */ if($file[0] != '.') { if(is_dir($dirname."/".$file)) { $tab_dir[] = $file; } else { $tab_file[] = $file; } } foreach($tab_file as $elem) { $monextension=ereg("\.([^\.]*$)", $elem); //echo $monextension; echo '<a href="'.$dirname."/".$elem.'" class="mb" rel="type:"'.$monextension.'"><img src="imagesIntranet/fichier.png" width="15" height="15"/>'.$elem.'</a><a href="#" onClick="Suppr(\''.$dirname."/".$elem.'\')"> <img src="imagesIntranet/button_cancel.png" width="10" height="10"/></a> <a href="download.php?telecharger='.$dirname."/".$elem.'"><img src="imagesIntranet/download.png" width="10" height="10"/></a><br />'; } $nbDossier++; foreach($tab_dir as $elem) { if(isset($tab_dir[0])) { echo '<a onclick="javascript:ipratm(\''.$choix.$nbDossier.'\');"><img src="imagesIntranet/5128-tOo-Dossierferme.png " id=image'.$nbDossier.' width="15" height="15"/>'.$elem.'</a> <a href="?p=ajoutFichierForm.php&directory='.$dirname."/".$elem.'"><img alt="add file" src="imagesIntranet/edit_add.png" width="10" height="10"/></a> <a href="#" onClick="Suppr(\''.$dirname."/".$elem.'\')"><img alt="delete folder" src="imagesIntranet/button_cancel.png" width="10" height="10"/></a><br />'; ?> <div id="coor<?php echo $choix.$nbDossier;?>" class="coor"> <?php list_Dossier("./".$dirname."/".$elem, $nbDossier, $choix.'s', $monTableau); ?> </div> <?php } } //----------------fin de la partie de tri********************************************* } }
Merci beaucoup pour votre aide.
|
|
mardi 17 février 2009 à 16:38:37 |
Re : Problème récursivité pour arborescence de fichier

codbooster
|
je me suis auto aidé, je suis partis sur une solution ajax qui a chaque fois que je click sur lien me liste le contenu du fichier sélectionné.
Je vous montre juste le script php éxécuté sur le click :
Voilà HF
Alex.
<?php $dirname=$_POST['chemin']; if(isset($_POST['idParent'])) { $idParent= $_POST['idParent']; }
$dir = opendir($dirname); // on ouvre le dossier $tab = array(); $index=0; while($file = readdir($dir)) // tants qu'il y a des fichiers { if($file != '.' && $file != '..') { $tab[$index]["chemin"]= $dirname."/".$file; $tab[$index]["id"]= $index; if(is_dir($dirname."/".$file)){ $tab[$index]["type"]= "dossier"; } else { $tab[$index]["type"]= "fichier"; } } $index++; } for($i=2;$i<=count($tab)+1;$i++) { if($tab[$i]["type"] == "dossier") { echo '<a onclick="javascript:goAffiche(\''.$idParent.$tab[$i]["id"].'\', \''.$tab[$i]["chemin"].'\', \''.$idParent.$tab[$i]["id"].'\');"><img src="imagesIntranet/5128-tOo-Dossierferme.png " id=image'.$tab[$i]["id"].' width="15" height="15"/>'.$tab[$i]["chemin"].'</a> <a href="?p=ajoutFichierForm.php&directory='.$tab[$i]["chemin"].'"><img alt="add file" src="imagesIntranet/edit_add.png" width="10" height="10"/></a> <a href="#" onClick="Suppr(\''.$tab[$i]["chemin"].'\')"><img alt="delete folder" src="imagesIntranet/button_cancel.png" width="10" height="10"/></a><br />'; echo '<div class="coor" id="'.$idParent.$tab[$i]["id"].'"></div>'; } else { echo '<a href="'.$tab[$i]["chemin"].'" class="mb" ><img src="imagesIntranet/fichier.png" width="15" height="15"/>'.$tab[$i]["chemin"].'</a><a href="#" onClick="Suppr(\''.$tab[$i]["chemin"].'\')"> <img src="imagesIntranet/button_cancel.png" width="10" height="10"/></a> <a href="download.php?telecharger='.$tab[$i]["chemin"].'"><img src="imagesIntranet/download.png" width="10" height="10"/></a><br />'; } } ?>
|
|
Cette discussion est classée dans : file, dossier, tab, dir, elem
Répondre à ce message
Sujets en rapport avec ce message
Paginer dossier [ par speedylol ]
Bonjour je suis sur un petit probléme je n'arrive pas a paginer le nombre de dossier créee je voix pas très bien comment faire Merci de votre aide.@se
Afficher le contenu d'un dossier [ par Toolsweb ]
SAlut, je voudrais afficher le contenu d'un dossier nommé fichiers. j'ai trouvé ceci$dir=opendir("images"); while($fi
Vérification dossier, problème [ par Satan2k ]
Voila je fais un explorateur de dossier multi-utilisateurs en ligne mais voila j'ai un problème que je n'arrive pas à résoudre. Je veux faire en sort
Sernier dossier [ par maximev ]
Bonjour,J'utilise le code ci-dessous pour me connecter à un ftp depuis une page de mon site afin d'y chercher le dossier le plus récent mais cela ne f
lister les dossier et non le contenu [ par zuddap ]
bonjour a tous, voila je cherche a lister tous les dossiers qui sont dans un dossier(parrent) ou il y a également des fichiers. Comme il est dit dans
Affichage page par page d'un contenu de repertoir [ par fabrice88 ]
bonjour, j'ai un repertoire dans lequel se trouve d'autres repertoires. je fait afficher le nom de ces repertoires sur ma page internet mais le proble
tester l'existence de fichiers [ par quicommenceparQ ]
Bonjour, Je parcours les fichiers et les sous-répertoires avec une fonction récursive, et je voudrais, s'il existe au moins un fichier portant une ce
etat d'un checkbox [ par elmvaries ]
salut à tous, je veux savoir comment je peux récupérer le contenu d'un checkbox coché,car je fait une formulaire mais je n'ai rien de tous...mon code
Modifier le mode de rangement [ par scrodofus ]
Bonjour, voila j'ai un ami qui ma creer ce script suivant : [code=php]\n\n"; $tab=array(); if ($handle = opendir('mp3')) { while ($file = readdir
affichage liste dossiers par ordre ALPHABETIQUE [ par mailliam ]
Ello tous! Voilà moi je me sers du code suivant pour lister les dossiers d'un répertoire sur mon serveur. Seulement ils ne s'affiche pas par ordre al
Livres en rapport
|
Derniers Blogs
ROSLYN FLUENT APIS: ROSLYNHELPER NUGET PACKAGEROSLYN FLUENT APIS: ROSLYNHELPER NUGET PACKAGE par Matthieu MEZIL
Si vous utilisez Roslyn et que vous vous voulez vous simplifier le code du code rewriter, je vous conseille d'installer mon NuGet package RoslynHelper ....(read more) ...
Cliquez pour lire la suite de l'article par Matthieu MEZIL POUR RAPPEL ! LES SPéCIFICATIONS DES PROTOCOLES OFFICE ET SHAREPOINT SONT DISPONIBLES SUR MSDNPOUR RAPPEL ! LES SPéCIFICATIONS DES PROTOCOLES OFFICE ET SHAREPOINT SONT DISPONIBLES SUR MSDN par neodante
Quelle est le point commun entre : Microsoft il y a 10 ans et Apple aujourd'hui ? Réponse: avoir une politique de protocoles propriétaires et fermés :) Car pour rappel (si si je vous assure c'est important de le rappeler), la majorité des spécifications e...
Cliquez pour lire la suite de l'article par neodante JOYEUX ANNIVERSAIRE NIXJOYEUX ANNIVERSAIRE NIX par ebartsoft
Souhaitons un bon et joyeux anniversaire à notre hôte à tous, Nix.
Je ne le répéterais jamais assez mais sans lui rien ne serait possible. Il défit en permanence les lois de la gravité et comme il le dit si bien, si tu lui fais confiance ça devra...
Cliquez pour lire la suite de l'article par ebartsoft IMAGINE CUP 2012, MAKE A SIGN EN FINALEIMAGINE CUP 2012, MAKE A SIGN EN FINALE par junarnoalg
Voilà qui est fait, la nouvelle est officielle ! L'équipe belge "Make a Sign" va au pays des kangourous défendre son projet dans la catégorie Software Design. http://www.imaginecup.com/CompetitionsContent/Competition/WorldwideFinalists.aspx V...
Cliquez pour lire la suite de l'article par junarnoalg KINECT 1.5 IS OUT !KINECT 1.5 IS OUT ! par Vko
La version 1.5 du Kinect For Microsoft vient tout juste de sortir ! Plein de nouveautés: Tracking de squelette en Near Mode Détection en position assise Détection faciale avec un SDK dédié Documentation et des guideline (enfin) Un out...
Cliquez pour lire la suite de l'article par Vko
Logiciels
sDEVIS-FACTURES vlPRO (8.1.0.3)SDEVIS-FACTURES VLPRO (8.1.0.3)sDEVIS-FACTURES vlPRO a été mis au point pour les particuliers, créateurs, entrepreneurs, artisa... Cliquez pour télécharger sDEVIS-FACTURES vlPRO 974 Application Server (12.2.4.6)974 APPLICATION SERVER (12.2.4.6)Développez de puissantes applications dans un environnement de 'cloud computing', clusterisé, séc... Cliquez pour télécharger 974 Application Server vPicture (1.4.2.1)VPICTURE (1.4.2.1)Avec vPicture, hébergez vos images facilement et rapidement.
vPicture est un utilitaire simple, ... Cliquez pour télécharger vPicture Easy-Planning (2.2.1.6)EASY-PLANNING (2.2.1.6)Easy-Planning permet de créer des plannings sous la représentation de diagrammes et est adapté au... Cliquez pour télécharger Easy-Planning COM-BACKUP (2.0)COM-BACKUP (2.0)
COM-BACKUP est un logiciel de sauvegarde qui permet de planifier les sauvegardes de vos dossiers ...
Cliquez pour télécharger COM-BACKUP
|