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 :

Problème checkbox cochée ou pas


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Août 2010
    Messages
    265
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2010
    Messages : 265
    Par défaut Problème checkbox cochée ou pas
    Bonjour,
    J'ai un problème

    Dans ma base de donnée pour sauver l'état d'une checkbox j'ai mis le champ de la checkbox à 1 si elle est cochée , à 0 si elle ne l'est pas.

    Comme ceci:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $bonnereponse1 = isset($_POST["cases1"]) ? 1 : 0;
    Ensuite quand je veux réafficher une page avec la checkbox en question pour éventuellement la modifier:

    Je fais

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <input type="checkbox" name="cases1" value"<?php echo $row_Recordset3bis['bonnereponse1']; ?>" />
    Sachant que row_Recordset3bis est un jeu d'enregistrement sur la table qui contient le champ qui stocke l'état de la checkbox...

    Problème donc avec ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <input type="checkbox" name="cases1" value"<?php echo $row_Recordset3bis['bonnereponse1']; ?>" />
    Si le champ bonnereponse1 est à 1 elle devrait être cochée, mais ça marche pas!
    Quelqu'un sait d'ou vient mon erreur svp?

  2. #2
    Membre éclairé
    Profil pro
    Inscrit en
    Juin 2004
    Messages
    80
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2004
    Messages : 80
    Par défaut
    C'est parce qu'une checkbox ne définit pas son état coché/décoché via l'attribut "value".

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    <input type="checkbox" name="cases1" value="1"<?php echo $row_Recordset3bis['bonnereponse1']?' checked="checked"':''; ?>" />

  3. #3
    Membre éclairé
    Profil pro
    Inscrit en
    Août 2010
    Messages
    265
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2010
    Messages : 265
    Par défaut
    Merci pour ta réponse rapide, ça marche en effet, mais je comprends pas trop ta syntaxe, t'as le temps de me l'expliquer stp en quelques mots ?
    Merci bcp

  4. #4
    Membre éclairé
    Profil pro
    Inscrit en
    Juin 2004
    Messages
    80
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2004
    Messages : 80
    Par défaut
    Pour le code PHP ?

    C'est un opérateur ternaire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    condition ? vrai : faux;
    Le la "condition" est vrai, c'est opération à gauche des deux points qui est traitée, sinon c'est celle de droite.

    On peut même imbriqué les opérateurs :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    condition ? condition2?vrai2:faux2 : faux;
    Qui n'est à ne pas utiliser pour des raisons esthétiques/pratiques (et de performance me semble t-il).

    En remplaçant par une structure IF :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <input type="checkbox" name="cases1" value="1"<?php if ($row_Recordset3bis['bonnereponse1']) echo ' checked="checked"'; ?>" />
    Je trouve la structure ternaire plus pratique dans ce cas d'utilisation, en particulier si tu vient à avoir besoin de la partie "faux".

  5. #5
    Membre éclairé
    Profil pro
    Inscrit en
    Août 2010
    Messages
    265
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2010
    Messages : 265
    Par défaut
    Je me permet de vous redemander votre aide car j'ai un problème lors d'une requête concernant des checkbox...
    Si une checkbox est cochée, je souhaite envoyer 1 en BDD, autrement 0...
    La requête se passe bien pour les autres champs mais pour les checkbox j'ai toujours 0 qui est transmis, quelqu'un sait pourquoi?
    Voici mon code:

    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
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    <body>
     
    <center>
      <p><strong>Question n°</strong><?php echo $row_Recordset3['NumeroQuestion'];?></p>
      <p align="left"><strong>
        <?php echo $row_Recordset3['intitule']; ?>  </strong></p>
    </center>
    <p align="left">
      <?php if( $row_Recordset3['reponsepossible1']!==""){?>
      <input type="checkbox" name="cb1">
      <?php echo $row_Recordset3['reponsepossible1'];} ?>
    </p>
    <p align="left">
      <?php if( $row_Recordset3['reponsepossible2']!==""){?>
      <input type="checkbox" name="cb2">
      <?php echo $row_Recordset3['reponsepossible2'];} ?>
    </p>
    <p align="left">
      <?php if( $row_Recordset3['reponsepossible3']!==""){?>
      <input type="checkbox" name="cb3">
      <?php echo $row_Recordset3['reponsepossible3'];} ?>
    <p align="left">
      <?php if( $row_Recordset3['reponsepossible4']!==""){?>
      <input type="checkbox" name="cb4">
    <?php echo $row_Recordset3['reponsepossible4'];} ?></p>
    <p align="left">
      <?php if( $row_Recordset3['reponsepossible5']!==""){?>
      <input type="checkbox" name="cb5">
      <?php echo $row_Recordset3['reponsepossible5'];} ?></p>
    <p></p>
    <?php 
    $bonnereponse1 = isset($_POST["cb1"]) ? 1 : 0;
    $bonnereponse2 = isset($_POST["cb2"]) ? 1 : 0; 
    $bonnereponse3 = isset($_POST["cb3"]) ? 1 : 0;
    $bonnereponse4 = isset($_POST["cb4"]) ? 1 : 0;
    $bonnereponse5 = isset($_POST["cb5"]) ? 1 : 0;?>
    <a href="#" onclick="if (window.confirm('Voulez vous vraiment passer à la question suivante?'))
    {
     
    			<?php $sql1 = "insert into reponse (Questionnaire,Question,CHK1,CHK2,CHK3,CHK4,CHK5 ) values ('".$_GET['NumeroQuestionnaire']."',1,'$bonnereponse1','$bonnereponse2','$bonnereponse3','$bonnereponse4','$bonnereponse5')";
    			$q1 = mysql_query($sql1,$connexionreponse) or die(mysql_error());?>
     
     
     
    location.href='QUESTIONSUIVANTE.php?questionnaire=<?php echo $row_Recordset3["questionnaire"];?>&NumeroQuestion= <?php echo $row_Recordset3["NumeroQuestion"];?>';return true;} else {return false;}"><img src="flechedroite.png" width="50" height="50" align="right"></a>
    </body>
    </html>

  6. #6
    Membre éclairé
    Profil pro
    Inscrit en
    Juin 2004
    Messages
    80
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2004
    Messages : 80
    Par défaut
    Une checkbox doit posséder un attribut "value" avec une valeur (dans ton cas : 1).
    Par contre si la checkbox n'est pas cochée, rien n'apparait dans la variable $_POST.

    Donc, pour savoir si elle est cochée, tu peux faire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    $cb1Checked = (int)isset($_POST['cb1'])

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

Discussions similaires

  1. Checkbox coché ou pas
    Par flo57570 dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 21/10/2010, 09h49
  2. [MySQL] Liste déroulante selon checkbox coché ou pas.
    Par Nicolas_k dans le forum PHP & Base de données
    Réponses: 9
    Dernier message: 24/02/2010, 12h32
  3. [HTMLDocument]checkbox coché ou pas ?
    Par Invité dans le forum AWT/Swing
    Réponses: 1
    Dernier message: 10/02/2006, 10h31
  4. checkbox coché ou pas ?
    Par kcizth dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 06/02/2006, 10h16

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