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 :

Afficher variables PHP dans un tableau


Sujet :

Langage PHP

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    181
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 181
    Points : 38
    Points
    38
    Par défaut Afficher variables PHP dans un tableau
    bonjour

    désolé si la question parait basique, mais je galere pour afficher un tableau contenant des variables PHP...

    je parse en fait un fichier xml avec des balises de valeur texte et image, extrait du code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    <<<HTML
    <tr>
        <td>{$type}</td>
        <td>{$brand}</td>
        <td><a href="{$url}"><img src="{$src}" alt="Aperçu" /></a></td>
    </tr>
    HTML;
    }
    ?>
     
        <tbody>
            <?php echo implode("\n", $rows) ?>
        </tbody>

    l'objectif est d'afficher ces variables sous forme de tableau html avec un code qui va bien..:



    j'ai trituré les tables tr td & co dans tout les sens, impossible d'obtenir ce que je veux

    Si quelqu'un à saurait quel code utiliser au niveau des balises de tableau pour réaliser ca ce serait top..merci par avance

  2. #2
    Expert éminent
    Avatar de 12monkeys
    Homme Profil pro
    Webmaster
    Inscrit en
    Novembre 2006
    Messages
    4 093
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Webmaster
    Secteur : Service public

    Informations forums :
    Inscription : Novembre 2006
    Messages : 4 093
    Points : 9 031
    Points
    9 031
    Par défaut
    Bonjour

    Je ne vois pas trop en quoi ton problème concerne HTML ?

    En HTML un tableau se fait de la manière suivante :

    Code html : 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
    <table>
      <tr>
        <td>
    ...
        </td>
        <td>
    ...
        </td>
        <td>
    ...
        </td>
      </tr>
      <tr>
        <td>
    ...
        </td>
        <td>
    ...
        </td>
        <td>
    ...
        </td>
      </tr>
    </table>

    Donc quel est ton problème par rapport à ce code ?

  3. #3
    Invité
    Invité(e)

  4. #4
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    181
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 181
    Points : 38
    Points
    38
    Par défaut
    et bien en fait si ca concerne le html car je veux que mes 3 variables PHP soient présente dans un tableau (comme la copie d ecran..), et que ces tableaux soient aligné par ligne de 3....

    et donc je ne voyais pas le code pour creer le tableau qui va bien...
    jreaux62 merci pour l'article c'est bien ca que j'essaie de faire, mais malgré divers tests je n'obtiens pas ce que je veux

    saurais tu le code qu'il faudrait pour obtenir ce type de résultat ?

  5. #5
    Invité
    Invité(e)
    Par défaut
    Bonjour,
    1/ SOLUTION 1 : affichage tabulaire avec une <table> html
    => IV. Affichage "en ligne" avec Base de Données
    L'astuce : on utilise la propriété "modulo" (a%b), comme expliqué (ici).
    Dans ton cas : $NbrCol = 3; (3 colonnes)

    2/ SOLUTION 2 : sans tableau html
    => Utilisation de "boites" (<div>) :
    - flottante ( float:left; ),
    - de largeur 1/3 ( width:33%; )
    CSS :
    Code css : 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
    <style type="text/css">
    #affiche_tout {
    	clear:both;
    	overflow:hidden;
    	border:1px solid red;
    }
    .affiche_box { 
    	float:left; /* flottant à gauche */
    	margin:1%; /* espacement entre les box */
    	width:31%; /* (33% - les marges) */
    	border:1px solid green;
    }
    .affiche_box p { 
    	text-align:center;
    }
    </style>
    PHP :
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    <?php
    $rows[] = <<<HTML
        <p><a href="{$url}"><img src="{$src}" alt="Aperçu" /></a></p>
        <p>{$type}</p>
        <p>{$brand}</p>
    HTML;
    // affichage
    echo '<div id="affiche_tout">'."\n";
    foreach($rows as $row){
    	echo '<div class="affiche_box">'.$row.'</div>'."\n";
    }
    echo '</div>'."\n";
    ?>
    Si le contenu n'a pas toujours la même hauteur, ça peut entrainer des décalages entre les boites.
    On peut ajouter :
    Code css : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    .affiche_box { 
    	height:300px; /* hauteur imposée */
    	overflow:auto; /* au cas où ça "dépasse" ! */
    }
    OU ENCORE en JavaScript/jQuery :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    <!-- Scripts - jQuery : initialisation -->
    <script type="text/javascript" src="http://code.jquery.com/jquery.js"></script>
    <script type="text/javascript">
    <!-- Scripts - jQuery : uniformisation des hauteurs -->
    $(document).ready(function(){ 
    	var hauteur = 0;
    	$(".affiche_box").each(function(){
    		if(hauteur<$(this).height() ){
    			hauteur = $(this).height();
    		}
    	});
    	$(".affiche_box").height(hauteur+'px');
    });
    </script>
    Dernière modification par Invité ; 14/10/2012 à 10h34.

  6. #6
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    181
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 181
    Points : 38
    Points
    38
    Par défaut
    bonjour jraux,

    merci c'est donc bien la méthode en PHP que je souhaite retenir, par contre pour le moment avec ton code je n'arrive afficher les éléments que dans une seule et meme colonne, comment je pourrais faire pour avoir des lignes de 3 elements (donc avec 3 colonnes) ?

  7. #7
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par metatron Voir le message
    ..., par contre ..., comment je pourrais faire ... ?
    Euhhh...
    • apprendre à lire ? Tout est expliqué dans le tutoriel !
    • si tu as lu, tester les scripts, faire des essais ?
    • si tu ne comprends pas, nous expliquer ce que tu ne comprends pas ?
    • tester les codes que j'ai fourni ci-dessus ?
    • nous montrer ton code ?
    • ...

  8. #8
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    181
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 181
    Points : 38
    Points
    38
    Par défaut
    Je n'avais pas détaillé ce que j'avais testé mais pas mal de choses avaient été testé avant de reposter
    mon soucis était que ma variable $rows ne s'affichait pas dans la table, suffit juste de bien remplacer la variable $tableau...ca marche bien désormais, merci encore

    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
    $rows[] = <<<HTML
        <a href="{$url}"><img src="{$thumb}" alt="Aperçu" /></a></br>
       <b>{$brand}</b></br>
        {$model}</br></br>
     
    HTML;
     
     
    }
    // -------------------------------------------------------
    // nombre de cellules a remplir
    $NbreData = count($rows);
    // -------------------------------------------------------
    // affichage
    $NbrLigne = 0;
    if ($NbreData != 0) 
    {
    	$k = 0; // indice du tableau
    ?>
    	<table frameBorder="0">
    	<tbody>
    <?php
    	while ($k < $NbreData) 
    	{
    		if (($k+1)%$NbrCol == 1) {
    			$NbrLigne++;
    			$fintr = 0;
    ?>		<tr>
    <?php		}
    ?>			<td>
    <?php			// -------------------------
    			// DONNEES A AFFICHER dans la cellule
    			echo $rows[$k];
    			// -------------------------
    ?>			</td>
    <?php		if (($k+1)%$NbrCol == 0) {
    			$fintr = 1;
    ?>		</tr>
    <?php		}
    		$k++;
    	}
    	// fermeture derniere balise /tr
    	if ($fintr!=1) {
    ?>		</tr>
    <?php } ?>
    	</tbody>
    	</table>
    <?php
    } else { ?>
    	pas de données à afficher
    <?php
    }
    ?>
     
    </body>
    </html>

Discussions similaires

  1. Réponses: 2
    Dernier message: 12/11/2014, 22h49
  2. Réponses: 3
    Dernier message: 16/07/2012, 15h22
  3. Afficher variable php dans texte dynamique flash
    Par MikeV dans le forum Intégration
    Réponses: 1
    Dernier message: 12/02/2008, 16h37
  4. Afficher variable javascript dans un tableau
    Par Galaad dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 03/05/2007, 13h56
  5. Réponses: 2
    Dernier message: 20/11/2005, 18h54

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