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 :

Récupérer les valeurs checkbox


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    100
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 100
    Par défaut Récupérer les valeurs checkbox
    Bonjour,

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    <? 
    if (isset($_POST)) extract ($_POST); 
    if (isset($checkbox1) || isset($checkbox2) || isset($checkbox3)) phpinfo(INFO_VARIABLES); 
    ?> 
    <form name="form1" method="post" action="test.php"> 
    <input type="checkbox" name="checkbox1" onClick="form1.submit();"> 
    <input type="checkbox" name="checkbox2" onClick="form1.submit();"> 
    <input type="checkbox" name="checkbox3" onClick="form1.submit();"> 
    </form>
    Je souhaiterai savoir comment faire en sorte pour que la valeur des checkbox qui ne sont pas cochés soient postés ?

  2. #2
    Membre expérimenté
    Inscrit en
    Janvier 2004
    Messages
    242
    Détails du profil
    Informations forums :
    Inscription : Janvier 2004
    Messages : 242
    Par défaut
    Et si tu leur mettais une valeur à tes checkbox et tu contrôlais cette valeur en php ?

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    100
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 100
    Par défaut
    même si j'affecte une valeur avec la propriété value, seules les cases cochées postent la valeur définie par value.

    Il faudrait faire une détection javascript du genre :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    if (document.getElementByName("checkbox1").checked = false) {
    	document.getElementByName("checkbox1").value="off";
    }
    seulement je n'arrive pas à affecter la valeur à une variable qui n'existe pas

  4. #4
    Membre Expert
    Inscrit en
    Janvier 2005
    Messages
    2 291
    Détails du profil
    Informations forums :
    Inscription : Janvier 2005
    Messages : 2 291
    Par défaut
    Seules les valeurs des checkboxes cochées sont postées donc tu n'as pas vraiment le choix.
    Tu peux par contre bricoler deux choses :
    1/ tu te fais un champ hidden qui contient toutes les valeurs de tes checkboxes séparées par un caractère/une suite de caractères spécial(e) donc coté serveur tu peux les récupérer
    2/ Tu coches volontairement en javascript toutes les cases => tu es donc obligé de te rajouter un deuxieme champ caché (pour chaque checkboxe) qui va te dire quelles checkboxes étaient réellement cochées (LOURD et pas top)
    3/ Pour chaque checkboxe, tu associes un champ "hidden" du style macheckbox1, macheckbox2, ... qui contient la valeur de la checkbox et du coup coté client tu peux les récupérer facilement avec un foreach

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    100
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 100
    Par défaut
    Merci pour ta réponse, je vais explorer les différentes solutions.

    Mais je crois que j'en ai une 4e :

    - 2 fichiers gif => une case à a coché vide et une autre sélectionné
    - on attributs un input type="hidden" à chaque image
    - et on utilise du js pour changer l'image en fonction de la valeur affectée par hidden

    Je pensais pas rester bloquer sur un pauvre script pour rendre des checkbox dynamiques.

    Je mettrai le post en résolu avec une des soluces.

  6. #6
    Membre expérimenté
    Inscrit en
    Janvier 2004
    Messages
    242
    Détails du profil
    Informations forums :
    Inscription : Janvier 2004
    Messages : 242
    Par défaut
    Citation Envoyé par pitxu Voir le message
    même si j'affecte une valeur avec la propriété value, seules les cases cochées postent la valeur définie par value.

    Il faudrait faire une détection javascript du genre :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    if (document.getElementByName("checkbox1").checked = false) {
    	document.getElementByName("checkbox1").value="off";
    }
    seulement je n'arrive pas à affecter la valeur à une variable qui n'existe pas
    ?


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    <input type="checkbox" name="checkbox1" onClick="form1.submit();" value="1"> 
     
    <?
    if ($_POST['checkbox1']=='1'){
      // c'est coché
    }
    ?>

  7. #7
    Membre confirmé
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    100
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 100
    Par défaut
    C'est l'inverse qu'on veut :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    <form name="form1" method="post" action="test.php">
    <input type="checkbox" name="checkbox1" onClick="form1.submit();" value="0" checked> 
    </form>
    <?
    if ($_POST['checkbox1']=='0'){
      echo "case décoché";
    }
    ?>
    ça ne marche pas car checkbox1 n'est pas posté, car décoché.

  8. #8
    Membre expérimenté
    Inscrit en
    Janvier 2004
    Messages
    242
    Détails du profil
    Informations forums :
    Inscription : Janvier 2004
    Messages : 242
    Par défaut
    Citation Envoyé par pitxu Voir le message
    C'est l'inverse qu'on veut :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    <form name="form1" method="post" action="test.php">
    <input type="checkbox" name="checkbox1" onClick="form1.submit();" value="0" checked> 
    </form>
    <?
    if ($_POST['checkbox1']=='0'){
      echo "case décoché";
    }
    ?>
    ça ne marche pas car checkbox1 n'est pas posté, car décoché.
    Donc fait l'inverse,

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    if ($_POST['checkbox1']!='1'){
      echo 'case décoché';
    }
    Edit : ok ça me parait évidant, mais j'avoue que pour les débutants c'est pas le truc que l'on pense instinctivement

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

Discussions similaires

  1. Réponses: 1
    Dernier message: 18/04/2007, 06h05
  2. Récupérer les valeurs d'une collection de checkbox
    Par licorne dans le forum Langage
    Réponses: 4
    Dernier message: 27/10/2006, 12h53
  3. Récupérer les valeurs du checkbox
    Par kcizth dans le forum Langage
    Réponses: 2
    Dernier message: 27/10/2006, 09h16
  4. [PHP-JS] Récupérer les valeurs des checkbox
    Par jamirokoi dans le forum Langage
    Réponses: 3
    Dernier message: 07/04/2006, 16h24
  5. récupérer les valeurs de checkbox
    Par liichiii dans le forum Servlets/JSP
    Réponses: 6
    Dernier message: 11/08/2005, 16h27

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