IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

Affichage du contenu d'un dossier sur le serveur dans un tableau HTML


Sujet :

Langage PHP

  1. #1
    Nouveau Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2018
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Gard (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2018
    Messages : 2
    Points : 1
    Points
    1
    Par défaut Affichage du contenu d'un dossier sur le serveur dans un tableau HTML
    Bonjour à tous ! Voilà, je voulais savoir comment faire en sorte de pouvoir faire une sorte de 'mini' gestionnaire de téléchargement. Je m'explique : j'ai un formulaire qui permet de rentrer ses "contacts" et qui permet pour chaque contact d'upload un devis (c'est pour une entreprise).

    Lorsque le contact Durant est créé (par exemple), sur mon serveur le dossier Durant se crée et dedans est mis le devis uploadé. Mais un client peut avoir plusieurs devis !

    Donc l'entreprise upload un deuxième devis pour Durant qui est mis dans le dossier Durant du serveur crée auparavant.

    Maintenant l'entreprise veut voir les devis uploadé pour Durant... Et la je bloque. J'aimerais que l'entreprise accède à une page ou tous les prénoms des clients rentré sont recensé et ou lors du clique sur par exemple Durant l'entreprise puisse voir tous les devis de ce Monsieur et ou ils puissent ,éventuellement, les télécharger.

    Merci de votre aide et j’espère que ce n'est pas trop ambitieux !

  2. #2
    Expert éminent sénior
    Avatar de mathieu
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    10 234
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 10 234
    Points : 15 531
    Points
    15 531
    Par défaut
    Pour parcourir un répertoire, regardez ces 2 pages:
    http://php.net/dir
    http://php.net/RecursiveDirectoryIterator

  3. #3
    Nouveau Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2018
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Gard (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2018
    Messages : 2
    Points : 1
    Points
    1
    Par défaut
    Devis------
    |
    |-----2017 (DOSSIER)

    |------ Client N°1 (DOSSIER)

    |-------Devis N°1.pdf (FICHIER)

    |-------Devis N°1.pdf (FICHIER)

    |-------Devis N°1.pdf (FICHIER)

    |------ Client N°2 (DOSSIER)

    |-------Devis N°1.pdf (FICHIER)

    |------ Client N°3 (DOSSIER)

    |-------Devis N°1.pdf (FICHIER)

    Voici l'arborescence de mon dossier 'devis'.

    En gros j'ai une liste HTML qui contient le nom des dossiers des années, j'aimerai que lorsque je clique dans ma liste sur l'élément 2017, ça puisse afficher une deuxième liste sur la page sans la recharger, où dans cette liste il y aura les clients et lorsque je clique sur le clients que je veux dans ma liste, un tableau avec tous les fichiers que contient le dossier du client s'affiche.

    EXEMPLE : Je clique sur 2017 dans ma liste, une liste s'affiche en affichant dans cette nouvelle liste 'Client N°1','Client N°2','Client N°3' et quand je clique sur 'Client N°1' un tableau HTML apparaît avec dedans le nom des fichiers dans ce dossier.

    Merci à tous de l'aide que vous pourriez m'apportez.

  4. #4
    Membre à l'essai
    Homme Profil pro
    Développeur Web
    Inscrit en
    Février 2018
    Messages
    11
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Février 2018
    Messages : 11
    Points : 22
    Points
    22
    Par défaut
    Bonsoir,

    Je sais que cette réponse est tardive mais, au cas où ce problème serait toujours d'actualité, je peux vous proposer un petit fichier qui donne une piste sur ce que vous recherchez.

    J'ai établi une structure de dossiers quasiment identique à celle que vous avez présentée. Là voici :


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    Devis------
    |
    	|-----2017 (DOSSIER)
     
    		|------ Client N°1 (DOSSIER)
     
    			|-------Devis N°1.pdf (FICHIER)
     
    			|-------Devis N°2.pdf (FICHIER)
     
    			|-------Devis N°3.pdf (FICHIER)
     
    		|------ Client N°2 (DOSSIER)
     
    			|-------Devis N°1.pdf (FICHIER)
     
    		|------ Client N°3 (DOSSIER)
     
    			|-------Devis N°1.pdf (FICHIER)

    Ci-dessous figure un fichier qui consiste à afficher le dossier racine dans un premier temps. Puis, à chaque fois qu'on clique sur le nom d'un dossier, il développe son contenu, si on reste sur la base du type d'arborescence décrit plus haut.



    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
    141
    142
    143
    144
    145
    146
    147
    148
    149
    150
    151
    152
    153
    154
    155
    156
    157
    158
    159
    160
    161
    162
    163
    164
    165
    <!DOCTYPE html>
    <html>
    	<head></head>
     
    	<body>
     
     
    	<style>
    		.folderContent {
    			margin-left: 40px;
    		}
     
    		.open {
    			display: block;
    		}
     
    		.closed {
    			display: none;
    		}
     
    		a {
    			display: block;
    		}
    	</style>
     
     
     
    <?php
    $dir = "Devis";
    // is_dir => On vérifie si $dir est un dossier
    if (is_dir($dir)) 
    {
     
    	echo '<a class="folder" href="#">'.$dir.'</a>';
     
    	// div ouvrant du contenu du dossier Devis 
    	echo '<div class="folderContent closed">';
     
    	// opendir => On ouvre le dossier Devis et on récupère un pointeur dessus
    	if ($dh = opendir($dir)) 
    	{ 
    		// readdir — Lit une entrée du dossier
    		while (($year = readdir($dh)) !== false) 
    		{
     
    			if (in_array($year, array('.', '..')))
    			{
    				continue;
    			}
     
    			$dir_year = "{$dir}/{$year}";
     
    			if(filetype($dir_year) == 'dir')
    			{
    				// On affiche un lien avec, comme texte, le nom du répertoire qui est l'année 
    				echo '<a class="folder" href="#">'.$year.'</a>';
     
    				// div ouvrant du contenu du dossier année 
    				echo '<div class="folderContent closed">';
     
     
    				// On ouvre 
    				if ($dh_year = opendir($dir_year)) 
    				{
    					while (($client = readdir($dh_year)) !== false) 
    					{
    						if (in_array($client, array('.', '..')))
    						{
    							continue;
    						}
     
    						$dir_client = "{$dir}/{$year}/{$client}";
     
    						if(filetype($dir_client) == 'dir')
    						{
    							// On affiche un lien avec, comme texte, le nom du répertoire qui est "Client N°x"
    							echo '<a class="folder" href="#">'.$client.'</a>';
     
    							// div ouvrant du contenu du dossier client 
    							echo '<div class="folderContent closed">';
     
     
    							if ($dh_client = opendir($dir_client)) 
    							{
    								while (($fichier_devis = readdir($dh_client)) !== false) 
    								{
    									if (in_array($fichier_devis, array('.', '..')))
    									{
    										continue;
    									}
     
    									$path_fichier_devis = "{$dir}/{$year}/{$client}/{$fichier_devis}";
     
    									if(filetype($path_fichier_devis) == 'file')
    									{
    										echo '<a href="'.$path_fichier_devis.'">'.$fichier_devis.'</a>';
    									}
     
    								}
     
    							}
     
    							closedir($dh_client);
     
    							// div fermant du contenu du dossier client
    							echo '</div>';
    						}					
     
    					}
     
    				}
     
    				closedir($dh_year);
     
    				// div fermant du contenu du dossier année
    				echo '</div>';
    			}
     
     
     
    		}
    	}
    	closedir($dh);
     
    	// div fermant du contenu du dossier Devis
    	echo '</div>';
    }
     
     
    ?>
     
    	<script type="text/javascript">
     
    		document.addEventListener("DOMContentLoaded", function(event) { 
     
    			var elemsDossiers = document.querySelectorAll("a.folder");
     
    			var nbDossiers = elemsDossiers.length;
     
    			for(var i = 0; i < nbDossiers; i++)
    			{
    				elemsDossiers[i].addEventListener('click', function(e) { 
     
    					var elementClique = e.target;
    					var classListElement = elementClique.nextElementSibling.classList;
     
    					if (classListElement.contains("closed"))
    					{
    						classListElement.replace("closed", "open");
    					}
    					else if(classListElement.contains("open"))
    					{
    						classListElement.replace("open", "closed");
    					}
     
    				});
     
    			}
     
    		});
     
    	</script>
     
    	</body>
    </html>

    En espérant que cela puisse vous être utile.

    Bonne soirée.

Discussions similaires

  1. [MySQL] Affichage par php des données mysql dans un tableau html
    Par JDP91 dans le forum PHP & Base de données
    Réponses: 7
    Dernier message: 17/05/2015, 09h10
  2. Afficher le contenu d'un dossier dans une page HTML
    Par mauriceuh dans le forum Balisage (X)HTML et validation W3C
    Réponses: 23
    Dernier message: 20/02/2007, 16h57
  3. [MySQL] Lister le contenu d'une table dans un tableau HTML
    Par carmen256 dans le forum PHP & Base de données
    Réponses: 10
    Dernier message: 03/04/2006, 19h40
  4. [OmniMark 5] Copier contenu d'un dossier dans autre dossier
    Par Hoegaarden dans le forum Autres langages
    Réponses: 3
    Dernier message: 24/08/2005, 16h59
  5. [HTML] affichage du contenu des balises 'alt' dans une iframe
    Par etarip dans le forum Balisage (X)HTML et validation W3C
    Réponses: 6
    Dernier message: 11/08/2005, 14h08

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo