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 :

Précocher des checkbox en fonction de la BDD ? [MySQL]


Sujet :

PHP & Base de données

  1. #1
    Membre averti Avatar de renaud26
    Homme Profil pro
    Webmaster
    Inscrit en
    Mars 2003
    Messages
    1 365
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Côtes d'Armor (Bretagne)

    Informations professionnelles :
    Activité : Webmaster

    Informations forums :
    Inscription : Mars 2003
    Messages : 1 365
    Points : 436
    Points
    436
    Par défaut Précocher des checkbox en fonction de la BDD ?
    Bonjour à tous,

    D'un côté, une table "fruits" contenant id1 => pomme, id2 => banane, id3 => mangue...etc...

    De l'autre, une table users avec un champ fruits renseigné par un form contenant les id choisis séparés par un espace: 1 3 6 etc...

    En mode modif, je souhaite afficher les cases à cocher de tous les fruits (ça, je sais faire), mais que celles qui correspondent au choix de l'user soient checked ...

    A force de tâtonnements, voici ce que j'ai fait:
    1- je récupère les données du champ fruits de l'user sous forme de tableau
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    $fruits = explode(" ", $row["fruits"]);
    2- Affichage des checkbox
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    $sql = mysql_query("SELECT id, nom FROM fruits order by id");//lecture tble fruits
    while($res = mysql_fetch_array($sql))
    {
    for($i=0; $i <count($fruits);$i++)
     {
    $sel[$i] = ( $fruits[$i] == "$res[id]" ) ? ' checked="checked"' : ' ';
    echo "".$res["nom"]."\n\n<input type=\"checkbox\" name=\"fruits[]\" value=\"".$res["id"]."\" ".$sel[$i].">\n | ";
      }
    }
    Ben ça affiche bien les checkbox cochées...mais comme dans mon exemple, l'user a choisi 3 fruits...ça affiche 3 fois la liste complète à cause de la boucle for (CQFD !)...mais je sais pas faire autrement

  2. #2
    Membre averti Avatar de hisy
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    377
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Novembre 2004
    Messages : 377
    Points : 353
    Points
    353
    Par défaut
    Salut,

    Je ne suis pas tout a fait ton raisonnement,
    Pour moi le mieux c'est effectivement que tu exploses ta liste d'id de fruits dans un tableau $fruit,
    Puis tu parcours ta table de des fruits et dans ta boucle tu fais un :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $sel=in_array($row['id'],$fruit)?"checked":"");
    Si l'id courant du fruit est dans le tableau tu check ta case ...

  3. #3
    Membre averti Avatar de renaud26
    Homme Profil pro
    Webmaster
    Inscrit en
    Mars 2003
    Messages
    1 365
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Côtes d'Armor (Bretagne)

    Informations professionnelles :
    Activité : Webmaster

    Informations forums :
    Inscription : Mars 2003
    Messages : 1 365
    Points : 436
    Points
    436
    Par défaut
    Bonjour et merci de ton coup de main. Ca fonctionne impec ! Bonne journée.

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

Discussions similaires

  1. Cocher Checkbox en fonction de la BDD
    Par mikael2235 dans le forum Langage
    Réponses: 41
    Dernier message: 11/09/2012, 22h30
  2. [AC-2007] Générer des formulaires en fonction de la BDD
    Par black is beautiful dans le forum VBA Access
    Réponses: 7
    Dernier message: 31/05/2011, 06h45
  3. [MySQL] Insertion des valeurs des checkbox choisies en BDD
    Par jacksummer dans le forum PHP & Base de données
    Réponses: 3
    Dernier message: 08/05/2008, 15h45
  4. Réponses: 4
    Dernier message: 21/11/2006, 15h44
  5. Réponses: 1
    Dernier message: 26/06/2006, 12h33

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