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 :

affichage data mysql dans checkbox


Sujet :

Langage PHP

  1. #1
    Membre habitué
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    412
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 412
    Points : 145
    Points
    145
    Par défaut affichage data mysql dans checkbox
    Bonjour,

    j'ai un formulaire d'update avec des checkbox

    l'un est comme ceci

    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
    <input type="checkbox" name="jours[]" value="lundi" id="lundi" />
    lun</label>
    <label>
        <input type="checkbox" name="jours[]" value="mardi" id="mardi" />
    mar</label>
    <label>
        <input type="checkbox" name="jours[]" value="mercredi" id="mercredi" />
    mer</label>
    <label>
        <input type="checkbox" name="jours[]" value="jeudi" id="jeudi" />
    jeu</label>
        <input type="checkbox" name="jours[]" value="vendredi" id="vendredi" />
    ven</label>
    <label>
        <input type="checkbox" name="jours[]" value="samedi" id="samedi" />
    sam</label>
    <label>
        <input type="checkbox" name="jours[]" value="dimanche" id="dimanche" />
    dim</label>


    comment récupérer les différents états des checkbox ( coché, pas coché ) avec les valeurs renvoyé de la table par une requête mysql select

    merci

  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
    Les checkbox cochées sont dans $_POST comme toutes les valeurs de champ d'un formulaire.
    Les checkbox non cochées ne renvoient rien.

    Il faut donc identifier tes checkbox, par exemple :
    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
     <input type="checkbox" name="jours[2]" value="mardi" id="mardi" />

    Tu n'as plus qu'a parcourir $_POST['jours'] pour avoir les jours cochés.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  3. #3
    Membre habitué
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    412
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 412
    Points : 145
    Points
    145
    Par défaut
    merci je vais voir ça

    quant je coche par exemple les cases mardi , jeudi , vendredi j'envoie ceci dans la table

    mardi / jeudi / vendredi

    parce que je traite ça avec un implode


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     $jours = $_POST['jours'];  //Contenu des cases à cocher
    if ($frequence == 'joursemaine') {
        $optionjours = implode(' / ',$jours); }
    bon déja je pense dans le form d'update il faut faire un test comme ,ça pour chaque input checkbox par exemple pour le checkbox mercredi

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if( $jours[2] == 'mercredi' )  echo 'checked'; else   echo '';



    en fait je me suis planté, dans mon formulaire d'update je récupère ce genre de valeur mardi / jeudi / vendredi
    je dois surement ( peu être ) faire un explode et récupérer les valeur dans un array ,ensuite faire un test pour chaque checkboxe ?

  4. #4
    Membre habitué
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    412
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 412
    Points : 145
    Points
    145
    Par défaut
    j'ai fait ça et ça marche

    le resultat du select

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $jours = $row['optionjours']
    dans mon cas par exemple je récupère ça

    mardi / jeudi / vendredi

    ensuite je fait un preg_match pour récupérer les valeurs de l'array

    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
     <label>
             <input type="checkbox" name="jours[]" value="lundi" <?php  if(preg_match('/lundi/i', $jours))   {   echo 'checked';  }  else { echo '';  } ;?> id="lundi" />
          lun</label>
           <label>
          <input type="checkbox" name="jours[]" value="mardi"<?php  if(preg_match('/mardi/i', $jours))   {   echo 'checked';  }  else { echo '';  } ;?> id="mardi" />
          mar</label>
           <label>
          <input type="checkbox" name="jours[]" value="mercredi"<?php  if(preg_match('/mercredi/i', $jours))   {   echo 'checked';  }  else { echo '';  } ;?> id="mercredi" />
          mer</label>
           <label>
          <input type="checkbox" name="jours[]" value="jeudi"<?php  if(preg_match('/jeudi/i', $jours))   {   echo 'checked';  }  else { echo '';  } ;?> id="jeudi" />
          jeu</label>
          <label>
          <input type="checkbox" name="jours[]" value="vendredi"<?php  if(preg_match('/vendredi/i', $jours))   {   echo 'checked';  }  else { echo '';  } ;?>id="vendredi" />
          ven</label>
           <label>
          <input type="checkbox" name="jours[]" value="samedi"<?php  if(preg_match('/samedi/i', $jours))   {   echo 'checked';  }  else { echo '';  } ;?> id="samedi" />
          sam</label>
             <label>
          <input type="checkbox" name="jours[]" value="dimanche"<?php  if(preg_match('/dimanche/i', $jours))   {   echo 'checked';  }  else { echo '';  } ;?> id="dimanche" />
          dim</label>
          </p>
    </div>	</label>
    le seul problème c'est que bizarrement , les cases sont bien cochées sauf celle du vendredi

    pourtant

    me donne bien mardi / jeudi / vendredi

    si dans la table je change par

    mardi / jeudi / samedi

    là toutes les cases des checkbocks correspondantes sont bien cochées..

    j'ai un problème avec vendredi ( pourtant je ne suis pas Robinson Crusoé ) qui ne se coche pas

    j'ai du faire une erreur de syntaxe..

  5. #5
    Membre habitué
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    412
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 412
    Points : 145
    Points
    145
    Par défaut
    je viens de réécrire l'input pour vendredi pour être sur de ne pas avoir fait d'erreur de syntaxe , un blanc en trop...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     <label>
          <input type="checkbox" name="jours[]" value="vendredi"<?php  if(preg_match('/vendredi/i', $jours))   {   echo 'checked';  }  else { echo '';  } ;?> id="vendredi" />ven</label>
    et maintenant ça fonctionne , vendredi est coché

    c'est bon

    ps .

    concernant la coloration syntaxique , je suis désolé , mais je ne comprend pas comment il faut faire pourriez vous me donner un exemple ?

  6. #6
    Expert éminent sénior
    Avatar de rawsrc
    Homme Profil pro
    Dev indep
    Inscrit en
    Mars 2004
    Messages
    6 142
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Dev indep

    Informations forums :
    Inscription : Mars 2004
    Messages : 6 142
    Points : 16 545
    Points
    16 545
    Billets dans le blog
    12
    Par défaut
    Salut,

    Mais où est ce que tu t'es embarqué ?
    Tu aurais dû suivre les conseils du sieur sabotage (Première réponse qui plus est....)
    Pas besoin de toute cette cuisine pour arriver à un résultat identique : (une ligne de code suffit amplement)
    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
    <?php
     
    $checked = function($p) { echo (isset($_POST['jours'][$p])) ? 'checked' : ''; };
     
    ?>
    <form action="test.php" method="POST">
        <input type="checkbox" name="jours[1]" value="lundi"    <?php $checked(1) ?> id="lundi" />lun
        <input type="checkbox" name="jours[2]" value="mardi"    <?php $checked(2) ?> id="mardi" />mar
        <input type="checkbox" name="jours[3]" value="mercredi" <?php $checked(3) ?> id="mercredi" />mer
        <input type="checkbox" name="jours[4]" value="jeudi"    <?php $checked(4) ?> id="jeudi" />jeu
        <input type="checkbox" name="jours[5]" value="vendredi" <?php $checked(5) ?> id="vendredi" />ven
        <input type="checkbox" name="jours[6]" value="samedi"   <?php $checked(6) ?> id="samedi" />sam
        <input type="checkbox" name="jours[7]" value="dimanche" <?php $checked(7) ?> id="dimanche" />dim
        <input type="submit" name="OK" value="OK" />
    </form>

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

Discussions similaires

  1. [phpMyAdmin] affichage base MySQL dans la liste des bases
    Par freddddddddd dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 0
    Dernier message: 30/01/2013, 02h21
  2. Réponses: 0
    Dernier message: 26/06/2012, 11h52
  3. [MySQL] affichage des données dans un tableau avec mysql et php
    Par fofina dans le forum PHP & Base de données
    Réponses: 4
    Dernier message: 19/10/2007, 14h00
  4. Réponses: 6
    Dernier message: 17/07/2006, 15h07

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