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

PHP & Base de données Discussion :

comment afficher 5 chekbox par ligne? [MySQL]


Sujet :

PHP & Base de données

  1. #1
    Membre averti
    Inscrit en
    Juillet 2009
    Messages
    31
    Détails du profil
    Informations forums :
    Inscription : Juillet 2009
    Messages : 31
    Par défaut comment afficher 5 chekbox par ligne?
    salut



    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    foreach ($this->caractere as $k=>$v):
     
     
    echo "<th><input type='checkbox' value=\"".$v["id"]."\"/>".$v["name"]."</th>";
     
     endforeach;
    comment je peux afficher 5 checkbox par ligne, au lieu d 'afficher tout dans un seul th ?

  2. #2
    Membre très actif Avatar de polkduran
    Profil pro
    Consultant informatique
    Inscrit en
    Décembre 2009
    Messages
    155
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

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

    Informations forums :
    Inscription : Décembre 2009
    Messages : 155
    Par défaut
    bah, selon ton code tu affiche un checkbox par <th>, tous tes checkbox ne sont pas dans le même <th>, alors je ne vois pas très bien ton problème

  3. #3
    Membre expérimenté
    Inscrit en
    Mai 2010
    Messages
    177
    Détails du profil
    Informations forums :
    Inscription : Mai 2010
    Messages : 177
    Par défaut
    Ce que je comprend de ton problème c'est que tu veux un maximum de 5 checkbox par ligne. Or, dans un tableau, une ligne est définie par une paire de marqueurs <tr></tr>. Donc, si tu veux bloquer ton nombre de checkbox, tu peux utiliser le modulo de cette façon:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    $compteur = 0;
    foreach ($this->caractere as $k=>$v):
    {                     
        if ($compteur % 5 == 0)
             echo "<tr>";
    echo "<th><input type='checkbox' value=\"".$v["id"]."\"/>".$v["name"]."</th>";
     
       if ($compteur % 5 == 0)
           echo "</tr>";
       $compteur++;
    }
    De cette façon, ton tableau va changer de ligne à toute les 5 cellules. Remarque également que tu peux utiliser les accolades au lieu du "end foreach". Et si j'étais toi, j'utiliserais la clause "<td>" plutôt que "<th>".

    Bonne chance.

    Osu

  4. #4
    Membre averti
    Inscrit en
    Juillet 2009
    Messages
    31
    Détails du profil
    Informations forums :
    Inscription : Juillet 2009
    Messages : 31
    Par défaut
    merci osuwariboy
    j'ai fait ce que tu m'a proposé
    j'ai eu comme resultat :
    dans le premier tr
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     <tr>
    <td> <input type ="chekbox"> 3g</td>
    <tr>
    et dans le 2eme <tr> :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    <tr> 
      <td><input type ="chekbox"> aaa</td>
    <td><input type ="chekbox"> bbb</td>
    <td><input type ="chekbox"> ccc</td>
    <td><input type ="chekbox"> ddd</td>
     
    </tr>
    mais moi je veux que dans chaque tr j'aurai 5 td
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    <tr> 
      <td><input type ="chekbox"> aaa</td>
    <td><input type ="chekbox"> bbb</td>
    <td><input type ="chekbox"> ccc</td>
    <td><input type ="chekbox"> ddd</td>
    <td><input type ="chekbox"> eeee</td>
     
    </tr>
    [/QUOTE]

  5. #5
    Membre très actif Avatar de polkduran
    Profil pro
    Consultant informatique
    Inscrit en
    Décembre 2009
    Messages
    155
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

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

    Informations forums :
    Inscription : Décembre 2009
    Messages : 155
    Par défaut
    ce serait plutôt dans la boucle
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    $compteur = 0;
    foreach($this->caractere as $k=>$v){
        if($compteur%5 ==0)
            echo '<tr>';
        $compteur++;
     
        echo "<th><input type='checkbox' value=\"".$v["id"]."\"/>".$v["name"]."</th>"; 
     
        if($compteur%5 == 0)
            echo '</tr>';
    }

  6. #6
    Membre averti
    Inscrit en
    Juillet 2009
    Messages
    31
    Détails du profil
    Informations forums :
    Inscription : Juillet 2009
    Messages : 31
    Par défaut
    merci, ca marche

  7. #7
    Membre Expert Avatar de RunCodePhp
    Profil pro
    Inscrit en
    Janvier 2010
    Messages
    2 962
    Détails du profil
    Informations personnelles :
    Localisation : Réunion

    Informations forums :
    Inscription : Janvier 2010
    Messages : 2 962
    Par défaut
    Salut

    merci, ca marche
    Il y a pourtant une erreur, des <th> tout le temps.


    C'est à mon sens un bon exercice qu'il serait pas mal de réussir soit même, car c'est de la logique pure

    Il y a une chose que tu ne dis pas, c'est au niveau de ta boucle.
    Tu veux mettre 5 colonnes, Ok, mais est-ce que le nombre total sera obligatoirement un multiple de 5 ?
    Si ce n'est pas le cas, ça va causer un problème pour les dernières colonnes.

    Admettons que le nombre total soit 7 (donc ça va boucler 7 fois), la 1ère ligne aura bien 5 colonnes, mais la 2ème en aura que 2 (manquera 3).

    Du coup, si tu ne fais rien le code HTML généré comportera une erreur.
    Il faudra gérer le cas, et là, il peu avoir plusieurs solutions : (j'en mets que 2)
    -> Soit on génère les colonne vides manquantes pour obtenir toujours 5 colonnes à la fin.
    -> Soit on rajoute une instruction au niveau HTML pour faire une fusion sur la dernière colonne (un colspan="4" dans l'exemple car 1 + 4 fusionnées).
    (faudra faire un calcul pour savoir combien il en manquera)


    Sinon, faut éviter les tableaux (ce qui serait mieux, car les tableaux ne sont pas des éléments adaptés à toute sorte de contenu).

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

Discussions similaires

  1. Comment afficher les numéros de lignes ?
    Par dr23fr dans le forum Eclipse Java
    Réponses: 4
    Dernier message: 05/07/2006, 10h35
  2. Réponses: 2
    Dernier message: 13/06/2006, 15h45
  3. [Tableaux] Afficher N images par ligne
    Par karimphp dans le forum Langage
    Réponses: 3
    Dernier message: 31/05/2006, 10h58
  4. [PHPLIB] Afficher deux enregistrements par ligne
    Par lsteamgeo dans le forum Bibliothèques et frameworks
    Réponses: 19
    Dernier message: 30/11/2005, 12h53
  5. [MySQL] Comment afficher une image par défaut ?
    Par clicman dans le forum PHP & Base de données
    Réponses: 9
    Dernier message: 12/10/2005, 08h46

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