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 :

Tableau avec des HTML


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éprouvé
    Homme Profil pro
    aux études mais 40 ans
    Inscrit en
    Juin 2004
    Messages
    2 046
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : aux études mais 40 ans

    Informations forums :
    Inscription : Juin 2004
    Messages : 2 046
    Par défaut Tableau avec des HTML
    Bonjour,

    J'ai sur ma page un petit code sympas.
    Ce code trie des images qui sont dans un dossier et ensuite affiche ces images l'une en dessous de l'autre dans une zone scrolable.

    Voila le code en question :
    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
    <!-- ******************************************
         * ZONE SCROLABLE SPECTACLES              *
    	 ******************************************-->        
    	<div id="madiv" class="zoom">
    	<?php  // debut de la zone scrollable  
    	$nom = array (); // On déclare le tableau AVANT la boucle
    	$dossier = 'jdwdates'; // On défini dans quel dossier on va
    	$dir = opendir($dossier); //On ouvre le dossier en question
    	while($file = readdir($dir)) { // on fait une boucle pour lire ce qu'il y a dedans
    		if($file != '.' && $file != '..' && !is_dir($dirname.$file)) // on exlcu . et ..
    		{
    			$nom[] = $dossier.'/'.$file; // on ajoute dans le tableau chaque nom de fichier
    					}
    	}
     	closedir($dir); // on ferme le dossier
    	sort ($nom); // on trie le tableau qu'on vient de construire
    	foreach ($nom as $fichier)  { // on fait la boucle qui va lire le tableau 
        echo '<img src="'.$fichier.'" /><br />';  // on affiche les images relatives au noms de fichier  que le tableau contient
    }
    // fin de la zone scrollable
    ?></td></div>
    J'envisage de remplacer les images par des petits fichiers HTML.
    Je voudrais afficher ces fichiers HTML sur le même principe que les images donc qu'on voit leur contenu.
    Je créerais moi même des fichiers tous sur base du même format mais je voudrais que la "zone" (la petite case) ou s'afficherait ce fichier HTML ai des dimensions fixes.
    Est ce que quelqu'un comprends ce que je veux faire ?.
    Est ce que c'est possible ?
    Est ce que quelqu'un a déjà vu un truc comme ça ?
    Et surtout une idée de comment faire ?

    Merci :-)

  2. #2
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2013
    Messages
    28
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2013
    Messages : 28
    Par défaut
    La solution la plus simple serait d'utiliser les frames mais c'est très moche une frame (Autant visuellement que sur le concept).

    tu pourrais aussi récupérer le contenu de tes fichiers en l'echo dans un tableau
    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
     
    $contenus = array(); // On déclare le tableau AVANT la boucle
    $dossier = 'dossierdefichiershtml'; // On défini dans quel dossier on va
    $dir = opendir($dossier); //On ouvre le dossier en question
    while ($file = readdir($dir)) { // on fait une boucle pour lire ce qu'il y a dedans
    	if ($file != '.' && $file != '..' && !is_dir($dossier . $file)) { // on exlcu . et ..
    		$contenus[] = file_get_contents($dossier . "/" . $file); // on ajoute dans le tableau le contenu de chaque de fichier
    	}
    }
    closedir($dir); // on ferme le dossier
    echo "<table><tr>";
    foreach ($contenus as $contenu) { // on fait la boucle qui va lire le tableau 
    	echo "<td>";
    	echo $contenu;  // on affiche le contenu des fichiers html
    	echo "</td>";
    }
    echo "</tr></table";

  3. #3
    Membre éprouvé
    Homme Profil pro
    aux études mais 40 ans
    Inscrit en
    Juin 2004
    Messages
    2 046
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : aux études mais 40 ans

    Informations forums :
    Inscription : Juin 2004
    Messages : 2 046
    Par défaut
    Bonjour Winks,

    Merci pour ce bout de code.
    J'ai tenté de l'adapté à ma page.
    son code entier est visible ici :
    http://www.espaceimagi.be/divers/spectacles.txt
    Quand je charge la page j'ai juste Array qui s'écrit alors que j'ai pourtant créé un petit fichier qui s'appel 1.html et qui est dans jdwdates.
    le fichier 1.html ne contient que ceci :
    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <title>date jérome de Warzée</title>
    </head>
     
    <body>
    Ceci est un test
    </body>
    </html>
    Autant dire que c'est assez simple.
    Il y a un truc que je ne pige pas dans le code et ça vient peut être de là.

    Quand on fait ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    foreach($nom as $fichier)  // on fait la boucle qui va lire le tableau 
    	{echo"<td>";
    	echo $nom;  // on affiche le contenu des fichiers html
    	echo"</td>";
    }
    la ligne qui affiche le contenu des fichiers c'est
    echo $nom;
    Mais comment le echo sait ou il est censé être dans le tableau ?
    Enfin bon c'est peut être pas ça mais je galère depuis tantôt à trouver...

  4. #4
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2013
    Messages
    28
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2013
    Messages : 28
    Par défaut
    echo $nom;
    Mais comment le echo sait ou il est censé être dans le tableau ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     foreach($nom as $fichier)
    Soit en français: "Pour chaque élément de $nom, qu'on appelle fichier". Voir la doc sur le foreach

    Quand tu fais "echo $nom", tu affiche le tableau au lieu d'afficher la ligne concernée. Il faut "echo $fichier".

    A partir de ça, si ça ne fonctionne toujours pas, débug:
    var_dump($dir), var_dump($file) dans la boucle, et ainsi de suite pour voir où il y a un problème. Il faudra remplacer je pense
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    !is_dir($dirname.$file)
    par
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    !is_dir($dir . "/" . $file)
    , parce que $dirname n'existe pas au dernière nouvelle et $dir.$file n'est pas sensé exister.

    Si tu affiches le contenu des fichiers HTML, au lieu de les afficher dans des frames, tu n'as pas besoin de leur mettre d'en-tête, de doctype, tout ça est géré dans le fichier principal (Sinon tu auras 7 en-têtes de titre sur une même page).

  5. #5
    Membre éprouvé
    Homme Profil pro
    aux études mais 40 ans
    Inscrit en
    Juin 2004
    Messages
    2 046
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : aux études mais 40 ans

    Informations forums :
    Inscription : Juin 2004
    Messages : 2 046
    Par défaut
    Oui en effet et c'est même file et pas fichier vu que plus haut dans le code on utilise file et pas fichier.
    Par contre j'ai toujours une petit incompréhension avec la boucle.

    Je comprends bien que foreach($nom as $file) "dit" qu'il faut faire un certain nombre de fois ce qui est entre les accolades à savoir :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    {echo"<td>";
    	echo $file;  // on affiche le contenu des fichiers html
    	echo"</td>";
    }
    Mais ce que je ne pige pas c'est comment le écho "sait" ou il est.

    Petite explication de ce qui se passe dans ma tête et qui rend les choses pas très claires.

    Si je visualise la boucle comme dans le temps ce serait un truc comme ça :

    on aurait créé un tableau du genre :
    fichier1 ="blabla"
    fichier2 ="totot"
    fichier3 ="dudul"
    etc...

    FOR A = 1 TO 10 (on fait 10 X la boucle)
    Print fichier
    NEXT A

    Mais ça n'afficherait rien puisque dans fichier on ne trouve rien, il faudrait allez dans fichier1,fichier2, etc...

    En fait ce qui me perturbe c'est que je me serais attendu pour cette boucle à avoir un truc du genre :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    foreach($nom as $file) 
    {echo"<td>";
    	echo $file[quelquechosequiindente];  // on affiche le contenu des fichiers html
    	echo"</td>";
    }
    Bon je sais je suis anachronique mais on raccroche les wagons comme on peut hein

  6. #6
    Membre éprouvé
    Homme Profil pro
    aux études mais 40 ans
    Inscrit en
    Juin 2004
    Messages
    2 046
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : aux études mais 40 ans

    Informations forums :
    Inscription : Juin 2004
    Messages : 2 046
    Par défaut
    Encore une question relative à mon fameux tableau...

    J'ai bien compris le principe et ça marche.
    C'est sympas et exactement ce que je voulais.
    Maintenant je regarde un peu pour la conception du contenu de ce tableau.
    Je devrais y "caser" une petite image, et quelques éléments sur le côté :
    - Une date
    - Un lieu
    - Un lien cliquable pour le site.
    - Un lien cliquable pour le mail.
    - Un numéro de téléphone.

    Ce qui serait bien ce serait que je puisse définir un tableau comprenant une colonne sur la droite qui ferait toute la hauteur, et une colonne sur la gauche constituée de 5 lignes de hauteurs différentes.

    Ca ne me pose pas trop de soucis de faire ça.

    Par contre la taille de mes cadres peut varier selon leur contenu et je me demandais s'il ne serait pas possible d'ajouter dans la lecture du tableau quelque chose qui mettrait le tableau à l'échelle pour qu'il rentre bien dans ma page.
    Je dis bien mettre à l'échelle pas couper le bout qui est trop grand.
    Ainsi je pourrais mettre dans mon dossier jdwdates tous mes HTML contenant des tableau différents et ils s'afficheraient bien dans ma page.

    Tu aurais une idée si c'est possible et comment ?
    Moi je vois bien comment enfermer le truc dans une div mais je ne vois pas trop comment faire pour que chaque tableau soit "rétréci" ou "agrandi" à la taille de cette div ?

    Merci encore de ton aide.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Tableau avec des cellules imbriquées
    Par MonOncle dans le forum Balisage (X)HTML et validation W3C
    Réponses: 3
    Dernier message: 15/11/2006, 22h56
  2. Tableau avec des checkboxes
    Par ioiolodie dans le forum MFC
    Réponses: 4
    Dernier message: 19/10/2006, 22h00
  3. Réponses: 7
    Dernier message: 22/09/2006, 15h52
  4. Réponses: 5
    Dernier message: 26/08/2006, 12h14
  5. [CSS] Remplacer un tableau avec des colonnes
    Par mullger dans le forum Mise en page CSS
    Réponses: 6
    Dernier message: 22/08/2006, 15h30

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