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 la valeur d'un checkbox


Sujet :

Langage PHP

  1. #1
    Membre habitué Avatar de Sytchev3
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    433
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 433
    Points : 137
    Points
    137
    Par défaut Récupérer la valeur d'un checkbox
    Je souhaiterai savoir comment l'on sait si une case d'un checkbox est coché ou non. J'alimente la valeur de départ à partir d'une base de données. Le problème c'est que si je décoche la case la méthode POST me dit que je ne renvoie rien donc je force la valeur à zéro et si recoche la case je renvoie toujours zéro la case n'est donc plus coché comment puis je faire ??? J'utilise le code suivant :



    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
     
     
    Modification : 
    ...
     
    if (isset($_POST["txtvalparametre$j$i"]))
    				{
    					${'valeur'.$j} = $_POST["txtvalparametre$j$i"];
     
    				}
    				else
    				{				
    					${'valeur'.$j}= "0";
    				}
    				echo ${'valeur'.$j};
     
    ...
     
    Affichage :
     
    ...
     
    if ($data['VAL'.$i.'PTPE0T']=="0" or $data['VAL'.$i.'PTPE0T']=="")
    								{
    									$valeurparametre="'0'";
     
    								}
    								else
    								{
    									$valeurparametre="'1'"." checked";
     
    								} 			
     
    echo "<td style='width: 250px;'><input type=${'typechamp'.$i} name=$nomchamp value=$valeurparametre size={$data['LOMAXVAL'.$i.'I']} maxlength={$data['LOMAXVAL'.$i.'I']}></td>";
     
    ...

  2. #2
    Expert éminent
    Avatar de Séb.
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    5 201
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mars 2005
    Messages : 5 201
    Points : 8 426
    Points
    8 426
    Billets dans le blog
    17
    Par défaut
    Citation Envoyé par Sytchev3
    Je souhaiterai savoir comment l'on sait si une case d'un checkbox est coché ou non.
    Avec isset( ).

    J'alimente la valeur de départ à partir d'une base de données. Le problème c'est que si je décoche la case la méthode POST me dit que je ne renvoie rien donc je force la valeur à zéro et si recoche la case je renvoie toujours zéro la case n'est donc plus coché
    Désolé, je ne comprends pas la problématique.

  3. #3
    Membre éclairé Avatar de cadoudal56
    Profil pro
    Inscrit en
    Février 2005
    Messages
    694
    Détails du profil
    Informations personnelles :
    Âge : 52
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Février 2005
    Messages : 694
    Points : 779
    Points
    779
    Par défaut
    Hello,

    Il n'est pas simple de comprendre ton probleme.
    Cependant je peux te dire que normalement un controle de type checkbox n'a pas de valeur. Soit il est Checked et dans ce cas sa valeur est 1 soit il est unchecked et sa valeur est 0

    Si j'ecris ceci
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    <input type="checkbox" name="controle" value="0" Checked>
    Ici la boite est cochée mais comme j'ai défini la valeur a 0, meme si la case est coché, il va renvoyer sa valeur (qui est 0)

    Si j'ecris ceci
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    <input type="checkbox" name="controle">
    Ici la valeur est a zero car la boite est décochée, mais si je la coche, la valeur sera a 1.

    En gros il ne faut pas mettre de valeur dans un controle checkbox.

    @+
    cadou

  4. #4
    Membre habitué Avatar de Sytchev3
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    433
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 433
    Points : 137
    Points
    137
    Par défaut
    En clair je ne doit pas renseigner la valeur value lorsque le case est décoché c'est bien ça ??? Le problème est que le type du composant est défini dans une base et que je le génère dynamiquement donc si la valeur dans ma base est 0 ou '' la valeur de value du checkbox doit être affecté à '' ou je ne définit pas du tout la value ???

    je devrait donc mettre cela comme 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
     
    if ($data['VAL'.$i.'PTPE0T']=="0" or $data['VAL'.$i.'PTPE0T']=="")
    								{
    									//$valeurparametre="'0'"; je ne fais rien ou
    //$valeurparametre="''";
     
    								}
    								else
    								{
    									$valeurparametre="'1'"." checked";
     
    								} 			
     
    echo "<td style='width: 250px;'><input type=${'typechamp'.$i} name=$nomchamp value=$valeurparametre size={$data['LOMAXVAL'.$i.'I']} maxlength={$data['LOMAXVAL'.$i.'I']}></td>";

  5. #5
    Membre éclairé Avatar de cadoudal56
    Profil pro
    Inscrit en
    Février 2005
    Messages
    694
    Détails du profil
    Informations personnelles :
    Âge : 52
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Février 2005
    Messages : 694
    Points : 779
    Points
    779
    Par défaut
    Hello,

    Si la valeur est supérieure a 0 tu dois mettre le checked.
    Si elle est a zero tu ne dois pas mettre le checked

    C'est aussi simple que cela

    @+
    cadou

  6. #6
    Membre habitué Avatar de Sytchev3
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    433
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 433
    Points : 137
    Points
    137
    Par défaut
    Donc je dois faire ça :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    si la valeur de ma base = 0 ou vide
     
    $valeurparametre="";
     
    si la valeur de ma base = 1
     
    $valeurparametre="'1'". "checked";
     
    après j'allimente value avec la variable de dessus pour créer mon composant :
     
    echo "<td style='width: 250px;'><input type=${'typechamp'.$i} name=$nomchamp value=$valeurparametre size={$data['LOMAXVAL'.$i.'I']} maxlength={$data['LOMAXVAL'.$i.'I']}></td>";
    Cela marche mais le problème c'est que lorsque je coche la case comme valeur il me poste size=... c'est à dire le paramètre suivant ??? Que puis je faire ???

Discussions similaires

  1. problème pour récupérer la valeur d'un checkbox
    Par bonnet85 dans le forum VB 6 et antérieur
    Réponses: 11
    Dernier message: 03/02/2008, 15h05
  2. Récupérer la valeur d'une checkbox
    Par claire13 dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 22/11/2007, 15h12
  3. Récupérer la valeur d'une checkbox
    Par zoom61 dans le forum Langage
    Réponses: 3
    Dernier message: 26/03/2007, 14h10
  4. Réponses: 2
    Dernier message: 24/05/2006, 15h20
  5. récupérer la valeur d'une checkbox
    Par druglord dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 09/08/2005, 13h54

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