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 :

balise avant le h2


Sujet :

Langage PHP

  1. #1
    Nouveau Candidat au Club
    Homme Profil pro
    chomeur
    Inscrit en
    Juillet 2014
    Messages
    128
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : chomeur

    Informations forums :
    Inscription : Juillet 2014
    Messages : 128
    Points : 0
    Points
    0
    Par défaut balise avant le h2
    bonjour voilà mon code

    Code php : 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
     
     
    ///on affiche le tableau du forum afin d'afficher les categorue et rubrique
     
    echo '<section id="global-liste-forum">';
     
    //Début de la boucle
    while($data = $query->fetch())
    {
     
                          //On affiche chaque catégorie
                          if( $categorie != $data['cat_id'] )
                           {
                                      //Si c'est une nouvelle catégorie on l'affiche
                                      $categorie = $data['cat_id'];
                                      ?>
     
                                      <h2 class="title" onclick="javascript:void(0)"><?php echo stripslashes(htmlspecialchars($data['cat_nom'])); ?><span class="icon-ouvert-forum"></span></h2>
     
                                      //je mets mon ouverture ul afin de mettre une class pour afficher et cacher tout les categorie
                                     <ul class="global-afficher-cacher-categorie">
                             	  <?php
    	               }
     
                           //Ici, on met le contenu de chaque catégorie
                           // Ce super echo de la mort affiche tous
                           // les forums en détail : description, nombre de réponses etc...
                           echo'<li class="liste-forum">
                           <div class="liste-forum-nouveau-ancien-message"><div class="liste-forum-nouveau-message"></div></div>
                           <p class="liste-forum-titre"><a href="liste-topic.php?f='.$data['forum_id'].'">'.stripslashes(htmlspecialchars($data['forum_name'])).'</a><span class="liste-forum-description-categorie">'.nl2br(stripslashes(htmlspecialchars($data['forum_desc']))).'</span></p>
                           <span class="liste-forum-sujet">'.$data['forum_topic'].'</span>
                           <span class="liste-forum-post">'.$data['forum_post'].'</span>
                           <div class="liste-forum-avatar icon-avatar-liste-forum-homme"><div class="liste-forum-avatar-homme-en-ligne"></div></div>';
     
                           // Deux cas possibles :
                          // Soit il y a un nouveau message, soit le forum est vide
                         if (!empty($data['forum_post']))
                         {
                                          //Selection dernier message
                                          $nombreDeMessagesParPage = 15;
                                          $nbr_post = $data['topic_post'] +1;
                                          $page = ceil($nbr_post / $nombreDeMessagesParPage);
     
                                          echo'<p class="liste-forum-mesage">'.date('H\hi \l\e d/M/Y',$data['post_time']).'<br />
                                          <a href="./voirprofil.php?m='.stripslashes(htmlspecialchars($data['membre_id'])).'&amp;action=consulter">'.$data['membre_pseudo'].'  </a>
                                          <a href="./voirtopic.php?t='.$data['topic_id'].'&amp;page='.$page.'#p_'.$data['post_id'].'"><img src="./images/go.gif" alt="go" /></a></p>
                                          </li>';
    	        ///là je met la fermeture de la balise ul 
                    echo '</ul>';
                    }
                     else
                    {
                                         echo'<p class="liste-forum-mesage">Pas de message</p></li>';
      	        ///là je met la fermeture de la balise ul (s'il n'y a pas de mesage)
                    echo '</ul>';
                  }
     
                    //Cette variable stock le nombre de messages, on la met à jour
                    $totaldesmessages += $data['forum_post'];
                    //On ferme notre boucle et nos balises
     
    }
    //fin de la boucle
    $query->CloseCursor();
     
    echo '</section>';

    vous voyer la ligne 16 , j'ai mis <ul class="global-afficher-cacher-categorie"> afin d'englober tout les catégories pour cacher et afficher les catégories

    mais il manque juste la balise </ul> car je veux le mettre avant le prochain h2

    peut-être , il faut metre un petit code pour li dire d'afficher </ul> avant les h2

    merci , d'avance

  2. #2
    Invité
    Invité(e)
    Par défaut
    Bonjour,

    Améliore l'indentation.
    Là, on ne voit rien.

  3. #3
    Nouveau Candidat au Club
    Homme Profil pro
    chomeur
    Inscrit en
    Juillet 2014
    Messages
    128
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : chomeur

    Informations forums :
    Inscription : Juillet 2014
    Messages : 128
    Points : 0
    Points
    0
    Par défaut
    merci, pour temps j'ai bien mis le code sur la balise code=php je ne peut pas faire plus a moins qu'il y a un souci au niveau de la coloration

  4. #4
    Invité
    Invité(e)
    Par défaut
    L'indentation, c'est :
    "Mettre des espaces et tabulations, pour rendre le code plus facile à lire, notamment au niveau des boucles (foreach, while, if, for...)".

    Exemple, MAL indenté :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    	  while($data = $query->fetch())
    	  {
     
    	  //On affiche chaque catégorie
    	  if( $categorie != $data['cat_id'] )
    	  {
    	  //Si c'est une nouvelle catégorie on l'affiche
    	  $categorie = $data['cat_id'];
    	  ?>
    Exemple, BIEN indenté :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    	  while($data = $query->fetch())
    	  {
     
    	  	  //On affiche chaque catégorie
    	  	  if( $categorie != $data['cat_id'] )
    	  	  {
    	  	  	  //Si c'est une nouvelle catégorie on l'affiche
    	  	  	  $categorie = $data['cat_id'];
    ?>

  5. #5
    Nouveau Candidat au Club
    Homme Profil pro
    chomeur
    Inscrit en
    Juillet 2014
    Messages
    128
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : chomeur

    Informations forums :
    Inscription : Juillet 2014
    Messages : 128
    Points : 0
    Points
    0
    Par défaut
    j'ai re modifier le code pour que tu vois la boucle etc...

    j'ai mis une balise ul avec une class ligne 21, donc là il dans la source il comprend qu'il faut bien mettre ul Class > après le h2 donc là c'est ok.

    Mais la fermeture balise je l'ai mise ligne 49 (quand il y aura un message posté et 53 quand il n'y aura pas de message.

    Mais quand je regarde dans la source, il n'englobe pas toutes les catégories juste le premier ligne et non les 4 ou 6 lignes de catégorie.

    Peut-être faut-il mettre un echo '</ul>' le code qui fera comprendre, mettre cette balise avant le h2.

    merci

  6. #6
    Membre averti
    Avatar de Sparky95
    Homme Profil pro
    Full Stack (web) developer
    Inscrit en
    Décembre 2016
    Messages
    379
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 28
    Localisation : Belgique

    Informations professionnelles :
    Activité : Full Stack (web) developer
    Secteur : Transports

    Informations forums :
    Inscription : Décembre 2016
    Messages : 379
    Points : 358
    Points
    358
    Par défaut
    hello,
    ALORS POUR COMMENCER
    Code PHP : 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
    <?php 
     
    ///on affiche le tableau du forum afin d'afficher les categorue et rubrique
     
     
    echo '<section id="global-liste-forum">';
     
    //Début de la boucle
    while($data = $query->fetch())
    {
        //On affiche chaque catégorie
        if( $categorie != $data['cat_id'] )
        {
            //Si c'est une nouvelle catégorie on l'affiche
            $categorie = $data['cat_id'];
            ?>
     
     
            <h2 class="title" onclick="javascript:void(0)"><?php echo stripslashes(htmlspecialchars($data['cat_nom'])); ?><span class="icon-ouvert-forum"></span></h2>
     
     
            <!--je mets mon ouverture ul afin de mettre une class pour afficher et cacher tout les categorie -->
            <ul class="global-afficher-cacher-categorie">
        <?php
        }
     
     
        //Ici, on met le contenu de chaque catégorie
        // Ce super echo de la mort affiche tous
        // les forums en détail : description, nombre de réponses etc...
        echo'<li class="liste-forum">
                <div class="liste-forum-nouveau-ancien-message"><div class="liste-forum-nouveau-message"></div></div>
                <p class="liste-forum-titre">
                    <a href="liste-topic.php?f='.$data['forum_id'].'">'.stripslashes(htmlspecialchars($data['forum_name'])).'</a>
                    <span class="liste-forum-description-categorie">'.nl2br(stripslashes(htmlspecialchars($data['forum_desc']))).'</span>
                </p>
                <span class="liste-forum-sujet">'.$data['forum_topic'].'</span>
                <span class="liste-forum-post">'.$data['forum_post'].'</span>
                <div class="liste-forum-avatar icon-avatar-liste-forum-homme"><div class="liste-forum-avatar-homme-en-ligne"></div></div>
            ';
     
     
        // Deux cas possibles :
        // Soit il y a un nouveau message, soit le forum est vide
        if (!empty($data['forum_post']))
        {
            //Selection dernier message
            $nombreDeMessagesParPage = 15;
            $nbr_post = $data['topic_post'] +1;
            $page = ceil($nbr_post / $nombreDeMessagesParPage);
     
     
            echo'<p class="liste-forum-mesage">'.date('H\hi \l\e d/M/Y',$data['post_time']).'<br />
                    <a href="./voirprofil.php?m='.stripslashes(htmlspecialchars($data['membre_id'])).'&amp;action=consulter">'.$data['membre_pseudo'].'</a>
                    <a href="./voirtopic.php?t='.$data['topic_id'].'&amp;page='.$page.'#p_'.$data['post_id'].'"><img src="./images/go.gif" alt="go" /></a>
                </p>
            </li>';
            ///là je met la fermeture de la balise ul 
            echo '</ul>';
        }
        else
        {
            echo'<p class="liste-forum-mesage">Pas de message</p></li>';
            ///là je met la fermeture de la balise ul (s'il n'y a pas de mesage)
            echo '</ul>';
        }
     
     
        //Cette variable stock le nombre de messages, on la met à jour
        $totaldesmessages += $data['forum_post'];
        //On ferme notre boucle et nos balises
     
     
    }
    //fin de la boucle
    $query->CloseCursor();
     
     
    echo '</section>';
    Ce serra déjà plus lisible comme ça - Quand on te parles de faire une indentation c'est pas pour faire joli. Et encore j'aurais pu un peu faire mieux mais j'avais la flem ...

    2. Pourquoi si tu galères à trouver pourquoi cela ne va pas tu n'écrirais pas étape par étape sur un papier ou en vis à vis sur un bloc note ce que tu es occupé de faire (un pseudo-code rapide)?

    fais donc un petit code rapide

    tant que(query à des élem mettre dans data)
    si catégorie <> data[idcat] //il y a une convetion pour les éléments mais tu peux choisir la maniere dont tu l'écris ex. différent s'écrit <> mais si t'as plus facile avec dif. ou != écris le comme ça
    ...




    Ici ton soucis je pense est que tu n'arrivais déjà pas à relire correctement ton code (par la je veux dire en un coup d'œil voir ou tes if,... se finissaient).


    pour ton ul maintenant: Ce que tu veux faire chaque tour de boucle est afficher quoi?


    écris en pseudo code (un code de 2-3 mots pas besoin de phrases) comment tu voudrais que le code s'affiches en html


    après compare le avec le pseudo code que tu viens de retranscrire comme j'ai fais juste au dessus
    Apres si tu galère toujours je regarderai un peu plus

  7. #7
    Nouveau Candidat au Club
    Homme Profil pro
    chomeur
    Inscrit en
    Juillet 2014
    Messages
    128
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : chomeur

    Informations forums :
    Inscription : Juillet 2014
    Messages : 128
    Points : 0
    Points
    0
    Par défaut
    voilà la capture

    je met


    avant la fin de la boucle et j'ai aussi tenté de mettre après le else ou il y a la class liste-forum-mesage

    mais je ne trouves pas la fin de mes 4 catégories

    peut-être il faut mettre un petit code pour qu'il puisse comprendre qu'il doit mettre </ul> après la ligne bug
    Images attachées Images attachées  

  8. #8
    Modératrice
    Avatar de Celira
    Femme Profil pro
    Développeuse PHP/Java
    Inscrit en
    Avril 2007
    Messages
    8 633
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 39
    Localisation : France

    Informations professionnelles :
    Activité : Développeuse PHP/Java
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2007
    Messages : 8 633
    Points : 16 372
    Points
    16 372
    Par défaut
    Bon, si j'ai bien compris l'objectif est de générer quelque chose de cette forme :
    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
    <h2>Catégorie 1 </h2>
    <ul>
        <li> message 1 </li>
        <li> message 2 </li>
        <li> message 3 </li>
    </ul>
    <h2>Catégorie 2 </h2>
    <ul>
        <li>pas de message</li>
    </ul>
    <h2>Catégorie 3 </h2>
    <ul>
        <li> message 1 </li>
        <li> message 2 </li>
    </ul>
    Donc le <ul> doit être fermé avant d'ouvrir une nouvelle catégorie (sauf la 1ère) ou à la fin de la liste. Ce que tu peux faire, c'est mettre un flag qui indique "ul ouvert" pour repérer si tu dois le fermer :
    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
    <?php
    //Début de la boucle
    $ulOuvert = false;
    $categorie = '';
    while ($data = $query->fetch()) {
     
        //On affiche chaque catégorie
        if ($categorie != $data['cat_id']) {
            //Si c'est une nouvelle catégorie on l'affiche
            $categorie = $data['cat_id'];
            // si le ul est ouvert, on le ferme
            if ($ulOuvert) {
                echo '</ul>';
                $ulOuvert = false;
            }
    ?>
        <h2 class="title" onclick="javascript:void(0)"><?php echo stripslashes(htmlspecialchars($data['cat_nom']));?><span class="icon-ouvert-forum"></span></h2>
        <ul class="global-afficher-cacher-categorie">
    <?php
            // on marque qu'on a ouvert un ul
            $ulOuvert = true;
        }
        // ici on gère le contenu du message avec <li></li>
        // [...]    
    }
    //fin de la boucle
    $query->CloseCursor();
     
    // si on a un ul ouvert, on le ferme
    if ($ulOuvert) {
        echo '</ul>';
    }
    Modératrice PHP
    Aucun navigateur ne propose d'extension boule-de-cristal : postez votre code et vos messages d'erreurs. (Rappel : "ça ne marche pas" n'est pas un message d'erreur)
    Cherchez un peu avant poser votre question : Cours et Tutoriels PHP - FAQ PHP - PDO une soupe et au lit !.

    Affichez votre code en couleurs : [CODE=php][/CODE] (bouton # de l'éditeur) et [C=php][/C]

  9. #9
    Nouveau Candidat au Club
    Homme Profil pro
    chomeur
    Inscrit en
    Juillet 2014
    Messages
    128
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : chomeur

    Informations forums :
    Inscription : Juillet 2014
    Messages : 128
    Points : 0
    Points
    0
    Par défaut
    Merci, je vais regarder ca afin de comprendre le principe surtout au niveau du code afin que je puisse un jours de le re faire

    Mais, j'ai juste une dernière question sur ligne 4

    tu met une variable en haut afin déclare, je commence à comprendre le principe

    pour quoi tu ne met rien entre les ""

    est-ce qu'il y a une raison ou pas afin que je puisse savoir

    merci

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

Discussions similaires

  1. [RegEx] Limiter à une balise avant le texte ciblé
    Par marcmarc dans le forum Langage
    Réponses: 2
    Dernier message: 01/09/2014, 19h28
  2. [JDOM] SAXbuilder - contrôle sur balise avant de parser mon fichier
    Par babap1 dans le forum Format d'échange (XML, JSON...)
    Réponses: 1
    Dernier message: 23/10/2008, 15h11
  3. [RegEx] Afficher le chemin des balises xml avant chaque valeurs
    Par Barney06 dans le forum Langage
    Réponses: 5
    Dernier message: 13/02/2008, 19h54
  4. [XSLT]Afficher plusieurs balises element dans une ligne avant de l'afficher
    Par ethan_decoster dans le forum XSL/XSLT/XPATH
    Réponses: 2
    Dernier message: 18/10/2007, 15h19
  5. Espacement avant et après la balise <form>
    Par yoyot dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 22/06/2006, 09h23

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