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

EDI, CMS, Outils, Scripts et API PHP Discussion :

Php tableau div/css [Joomla!]


Sujet :

EDI, CMS, Outils, Scripts et API PHP

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Août 2010
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2010
    Messages : 10
    Points : 8
    Points
    8
    Par défaut Php tableau div/css
    Bonjour,
    debutant en php je viens de commencer a coder un tableau dynamique avec des div et du css, dans ce tableau j'affiche un certain nombre d'éléments récupéré de ma bdd, seulement voilà:
    - j'aimerais obtenir ce resultat:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    <div id="conteneurtableau">
    <div id="lignes" style="clear: both;">
    <div id="colonnes" style="float: left;">News1</div>
    <div id="colonnes" style="float: left;">News2</div>
    <div id="colonnes" style="float: left;">News3</div>
    <div id="colonnes" style="float: left;">News4</div>
    </div></div>
    et j'obtiens ceci:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    <div id="conteneurtableau">
    <div id="lignes" style="clear: both;">
    <div id="colonnes" style="float: left;">News1 News2 News3 News4</div>
    <div id="colonnes" style="float: left;">News1 News2 News3 News4</div>
    <div id="colonnes" style="float: left;">News1 News2 News3 News4</div>
    <div id="colonnes" style="float: left;">News1 News2 News3 News4</div>
    </div></div>
    voici mon code:
    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
     
    <div id="conteneurtableau">
    <?php
    for ($r=1; $r<=$NbrLignes; $r++){
    echo'<div id="lignes" style="clear:both;">';
    for ($c=1; $c<=($NbrColonnes); $c++){
    echo'<div id="colonnes" style="float:left;">';
    foreach ($list as $item) :
    echo $item->title;
    endforeach;
    echo '</div>';
    }
    echo '</div>';
    }
     
    ?>
     
    </div>
    Merci d'avance.

  2. #2
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    Si je devine bien ton tableau :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    <div id="conteneurtableau">
    <?php
    for ($r=1; $r<=$NbrLignes; $r++){
     
    echo'<div id="lignes" style="clear:both;">';
    foreach ($list as $item) :
       echo'<div id="colonnes" style="float:left;">' . $item->title . '</div>';
    endforeach;
     
    }
    echo '</div>';
    ?>

  3. #3
    Futur Membre du Club
    Profil pro
    Inscrit en
    Août 2010
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2010
    Messages : 10
    Points : 8
    Points
    8
    Par défaut Ca marche aussi mais..
    Bonjour sabotage, ta proposition marche, mais enfaite ça ne resout pas tout parceque j'ai omis des point important dans le post:

    -j'essaie enfaite de faire un systeme de tableau comme tu l'a bien compris mais ou je definis moi-même le nombre de lignes et de colonnes.

    voici ce que j'ai cette fois-ci:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    <?php 
    for ($r=1; $r<=$NbrLignes; $r++){
    echo'<div class="lignes" style="clear:both;">';
    for ($c=1; $c<=($NbrColonnes); $c++){
    foreach ($list as $item) :
    echo '<div class="colonnes" style="float:left;">'.$item->title.'</div>';
    endforeach;
    }
    echo '</div>';
    }
     
    ?>
    avec mes variables $NbrLignes=2 et $NbrColonnes=4

    j'obtient comme résultat mes colonnes multiplié par 4,

    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
    <div id="conteneurtableau">
    <div class="lignes" style="clear: both;">
    <div class="colonnes" style="float: left;">News1</div>
    <div class="colonnes" style="float: left;">News2</div>
    <div class="colonnes" style="float: left;">News3</div>
    <div class="colonnes" style="float: left;">News4</div>
    <div class="colonnes" style="float: left;">News1</div>
    <div class="colonnes" style="float: left;">News2</div>
    <div class="colonnes" style="float: left;">News3</div>
    <div class="colonnes" style="float: left;">News4</div>
    <div class="colonnes" style="float: left;">News1</div>
    <div class="colonnes" style="float: left;">News2</div>
    <div class="colonnes" style="float: left;">News3</div>
    <div class="colonnes" style="float: left;">News4</div>
    <div class="colonnes" style="float: left;">News1</div>
    <div class="colonnes" style="float: left;">News2</div>
    <div class="colonnes" style="float: left;">News3</div>
    <div class="colonnes" style="float: left;">News4</div>
    </div>
    <div class="lignes" style="clear: both;">
    <div class="colonnes" style="float: left;">News1</div>
    <div class="colonnes" style="float: left;">News2</div>
    <div class="colonnes" style="float: left;">News3</div>
    <div class="colonnes" style="float: left;">News4</div>
    <div class="colonnes" style="float: left;">News1</div>
    <div class="colonnes" style="float: left;">News2</div>
    <div class="colonnes" style="float: left;">News3</div>
    <div class="colonnes" style="float: left;">News4</div>
    <div class="colonnes" style="float: left;">News1</div>
    <div class="colonnes" style="float: left;">News2</div>
    <div class="colonnes" style="float: left;">News3</div>
    <div class="colonnes" style="float: left;">News4</div>
    <div class="colonnes" style="float: left;">News1</div>
    <div class="colonnes" style="float: left;">News2</div>
    <div class="colonnes" style="float: left;">News3</div>
    <div class="colonnes" style="float: left;">News4</div>
    </div>
    </div>
    alors que ce que je voudrais vraiment à la fin c'est quelque chose dans cette idee là :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    <div id="lignes" style="clear: both;">
    <div class="colonnes" style="float: left;">News1</div>
    <div class="colonnes" style="float: left;">News2</div>
    <div class="colonnes" style="float: left;">News3</div>
    <div class="colonnes" style="float: left;">News4</div>
    </div>
    <div id="lignes" style="clear: both;">
    <div class="colonnes" style="float: left;">News5</div>
    <div class="colonnes" style="float: left;">News6</div>
    <div class="colonnes" style="float: left;">News7</div>
    <div class="colonnes" style="float: left;">News8</div>
    </div>
    J'espère être suffisament clair : )

  4. #4
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    Il faut faire tes boucles dans l'autre sens alors :

    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
    <?php
    $colonne = 1;
    $newline = '<div class="lignes" style="clear:both;">';
     
    echo $newline;
     
    foreach ($list as $item) {
     
    if ($colonne > $NbrColonnes) {
       $colonne = 1;
       echo "</div>\n" . $newline;
    }
    else {
      $colonne++;
    }
     
    echo '<div class="colonnes" style="float:left;">'.$item->title.'</div>';
     
    }
     
    echo "</div>\n";
    ?>
    Je ne t'ai pas fais l'arret sur $NbrLignes

  5. #5
    Futur Membre du Club
    Profil pro
    Inscrit en
    Août 2010
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2010
    Messages : 10
    Points : 8
    Points
    8
    Par défaut ?
    Bonjour sabotage, j'ai essayé et voici ce que j'obtiens avec la variable $NbrColonnes=2 et 10 elements:

    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
    <div id="lignes" style="clear: both;">
    <div class="colonnes" style="float: left;">News1</div>
    <div class="colonnes" style="float: left;">News2</div>
    </div>
    <div id="lignes" style="clear: both;">
    <div class="colonnes" style="float: left;">News3</div>
    <div class="colonnes" style="float: left;">News4</div>
    <div class="colonnes" style="float: left;">News5</div>
    </div>
    <div id="lignes" style="clear: both;">
    <div class="colonnes" style="float: left;">News6</div>
    <div class="colonnes" style="float: left;">News7</div>
    <div class="colonnes" style="float: left;">News8</div>
    </div>
    <div id="lignes" style="clear: both;">
    <div class="colonnes" style="float: left;">News9</div>
    <div class="colonnes" style="float: left;">News10</div>
    </div>
    Bizarre bizarre..

  6. #6
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    C'est un toute bête erreur dans le comptage des colonnes, je te laisse le corriger.

  7. #7
    Futur Membre du Club
    Profil pro
    Inscrit en
    Août 2010
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2010
    Messages : 10
    Points : 8
    Points
    8
    Par défaut Youhouuu !
    Re bonjour, c'est ok j'ai trouvé la solution, la voici pour ceux que ça peut aider (on sait jamais):

    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
    <?php
    $colonne = 0;
    $newline = '<div class="lignes" style="clear:both;">';
     
    echo $newline;
     
    foreach ($list as $item) {
     
    if ($colonne >= $NbrColonnes) {
       $colonne = 1;
       echo "</div>\n" . $newline;
    }
    else {
      $colonne++;
    }
     
    echo '<div class="colonnes" style="float:left;">'.$item->title.'</div>';
     
    }
     
    echo "</div>\n";
    ?>
    En tout cas, un GRAND MERCI à toi : ) !

    J'aurais juste un derniere question:
    J'aimerais bien pouvoir récuperer le premier element séparement de la liste, pour faire quelque chose dans ce genre:
    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
    <div id="conteneur">
    <div id="entete">News1</div>
    <div class="lignes" style="clear:both;">
    <div class="colonnes" style="float:left;">News2</div>
    <div class="colonnes" style="float:left;">News3</div>
    <div class="colonnes" style="float:left;">News4</div>
    <div class="colonnes" style="float:left;">News5</div>
    </div>
    <div class="lignes" style="clear:both;">
    <div class="colonnes" style="float:left;">News6</div>
    <div class="colonnes" style="float:left;">News7</div>
    <div class="colonnes" style="float:left;">News8</div>
    <div class="colonnes" style="float:left;">News9</div>
    </div>
    </div>
    en gros, une présentation comme dans les sites de news, aurais-tu un tutoriel qui explique, ou un quelconque lien ? Encore merci à toi : )

  8. #8
    Futur Membre du Club
    Profil pro
    Inscrit en
    Août 2010
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2010
    Messages : 10
    Points : 8
    Points
    8
    Par défaut
    C'est bon, j'ai egalement trouvé la solution à ce probleme aussi, il fallait donc utiliser des array_slice.

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

Discussions similaires

  1. [XPATH] [PHP] - tableau de div
    Par altair8080 dans le forum XSL/XSLT/XPATH
    Réponses: 0
    Dernier message: 21/12/2013, 22h19
  2. cellules d'un tableau xhtml css
    Par Bibouda dans le forum Mise en page CSS
    Réponses: 3
    Dernier message: 04/01/2006, 12h55
  3. [DIV][CSS] Alignement vertical
    Par pmartin8 dans le forum Mise en page CSS
    Réponses: 15
    Dernier message: 02/11/2005, 14h50
  4. centrer un bloc avec des div+css
    Par fabrisss dans le forum Mise en page CSS
    Réponses: 4
    Dernier message: 27/10/2005, 23h41
  5. Tableau et css
    Par LeDoc dans le forum Mise en page CSS
    Réponses: 9
    Dernier message: 27/07/2005, 11h43

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