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 :

Checkbox disabled pou non cochée


Sujet :

Langage PHP

  1. #1
    Membre habitué Avatar de Laskar
    Homme Profil pro
    Inscrit en
    Mai 2002
    Messages
    229
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Côte d'Or (Bourgogne)

    Informations forums :
    Inscription : Mai 2002
    Messages : 229
    Points : 142
    Points
    142
    Par défaut Checkbox disabled pou non cochée
    Salut à tous.
    voici ma page d'accueil :
    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
    <html>
    <body>
    <form name "frm" method="POST" action = "traite.php">
    <?
    	for($i=0; $i<5;$i++)
    	{
    		$disabled = ($i==2 ? "disabled" : "");
    		$checked =  ($i==2 ? "checked" : "");
    		echo "cb ".$i." <input type='checkbox' name='cb".$i."' ".$disabled." value='".$i."' ".$checked."><br />";
    	}
    ?>
    <input type="submit" value=" valider "/>
    </form>
    </body>
    </html>
    et le module qui traite mon formulaire :
    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
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    </head>
    <body><center>
    <?
    	$ab = array(5);	
    	for($i=0; $i<5; $i++)
    	{
    		if (isset($_POST["cb".$i]))
    		{
    			echo "cb".$i." is checked<br />";
    			$ab[$i] = $_POST["cb".$i]; 
    		}
    		else
    		{
    			echo "cb".$i." is unckecked or disabled<br />";
    			$ab[$i] = 0;
    		}
    	}	
    ?>
    </body>
    </html>
    Note : Sur mon site, la checkbox qui est "disabled" n'est jamais la même (aléatoire).
    J'aimerais récupérer la valeur de la checkbox disabled. Malheureusement, PHP ne fait pas la différence entre une checkbox non cochée et une checkbox disabled.
    Avez-vous une solution pour différencier les deux ?

    Merci

  2. #2
    Membre actif
    Homme Profil pro
    DSI interne
    Inscrit en
    Juin 2011
    Messages
    197
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : DSI interne
    Secteur : Tourisme - Loisirs

    Informations forums :
    Inscription : Juin 2011
    Messages : 197
    Points : 290
    Points
    290
    Par défaut
    Bonjour,

    Oui si la checkbox est disabled elle ne sera pas envoyée avec le formulaire, même cochée.

    Ce que tu peux faire est de récupérer cet état dans un champ caché du genre :

    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
    <html>
    <body>
    <form method="POST" action = "traite.php">
    <?php
    	for($i=0; $i<5;$i++)
    	{
    		$disabled = ($i==2 ? "disabled" : "");
    		$checked =  ($i==2 ? "checked" : "");
    		echo "cb ".$i." <input type='checkbox' name='cb".$i."' ".$disabled." value='".$i."' ".$checked."><br />";
    		echo "<input type='hidden' name='cb_hidden".$i."' value='".$i."_".$disabled."'>";
    	}
    ?>
    <input type="submit" value=" valider "/>
    </form>
    </body>
    </html>

  3. #3
    Membre habitué Avatar de Laskar
    Homme Profil pro
    Inscrit en
    Mai 2002
    Messages
    229
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Côte d'Or (Bourgogne)

    Informations forums :
    Inscription : Mai 2002
    Messages : 229
    Points : 142
    Points
    142
    Par défaut
    Citation Envoyé par MinDBuSteR Voir le message
    Ce que tu peux faire est de récupérer cet état dans un champ caché
    Bah, le champ caché dans ce cas ne me renseigne que sur l'état des cases au moment de l'affichage du formulaire mais pas sur l'état de ces cases au moment de la validation (ou alors un truc m'échappe ...)

  4. #4
    Membre actif
    Homme Profil pro
    DSI interne
    Inscrit en
    Juin 2011
    Messages
    197
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : DSI interne
    Secteur : Tourisme - Loisirs

    Informations forums :
    Inscription : Juin 2011
    Messages : 197
    Points : 290
    Points
    290
    Par défaut
    Si ta checkbox est disabled elle ne risque pas de beaucoup changer d'état...

    Si tu veux prendre en compte tes autres checkbox rajoute un peu de js, et fais changer tes champs hidden.

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

Discussions similaires

  1. [HTML 4.0] Checkbox non cochée lors de l'impression
    Par thaundeadboss dans le forum Balisage (X)HTML et validation W3C
    Réponses: 4
    Dernier message: 14/09/2010, 15h26
  2. Bouton désactivé si checkbox non cochée
    Par fredfaz dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 05/02/2009, 15h49
  3. Définir la valeur d'une checkbox non cochée
    Par frakosun dans le forum Langage
    Réponses: 3
    Dernier message: 06/02/2008, 13h52
  4. Valeur d'une checkbox non cochée
    Par lekunfry dans le forum Langage
    Réponses: 8
    Dernier message: 14/09/2007, 12h10
  5. Réponses: 2
    Dernier message: 24/05/2006, 15h20

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