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 = checked


Sujet :

Langage PHP

  1. #1
    Membre actif
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    490
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2004
    Messages : 490
    Points : 201
    Points
    201
    Par défaut checkbox = checked
    bonjour,

    existe t-il un moyen de savoir si une checkbox est cochée ou non en php, style if is checked ?
    J'ai 3 lignes avec 3 checkbox dont la valeur provient de la bdd. si la valeur est à 1 je dis que c'est coché.
    1. si je décoche la valeur se met à 0 et update la base.
    2. si je ne touche à rien ça met la base à jour.
    3. si je ne touche à rien mais que la valeur est à 1, ça me considère la checkbox comme isset. et je ne veux pas car
    si je décoche ou je coche, ma valeur s'inverse...
    un peu de code pour mieux comprendre.
    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
     
     <input type="checkbox"<?=$check?> name="ajouter" value="<?=$profilInfos['ajouter'];?>" />
     <input type="checkbox"<?=$check?> name="modifier" value="<?=$profilInfos['modifier'];?>" />
     <input type="checkbox"<?=$check?> name="supprimer" value="<?=$profilInfos['supprimer'];?>" />
     
    if (isset($_REQUEST['ajouter']))
    		{ 
    			if ($_REQUEST['ajouter']=="1")
    				{
    					$checked = true;
    					$ajouter="0";
                }
     
    			else
    			{	$checked = false;
    				$ajouter= "1";
     
    			}	
    		}
     
    		else 
                            // on récupère ce qu'il y a dans la base
    			$ajouter= $profilInfos['ajouter'];	
    $info = array("ajout"=>$ajouter);
    //echo "<pre>";
    //print_r($info);
    //echo "<pre>";
    		$update =($profil->update($info));
    voilà en espérant avoir été claire, ce que je veux c'est récupérer la valeur de la base, mettre coché si c'est 1. et si on modifie enregistrer dans la base..
    merci beaucoup !

  2. #2
    Membre éprouvé
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    868
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Avril 2007
    Messages : 868
    Points : 1 022
    Points
    1 022
    Par défaut
    La valeur d'une checkbox se récupère via le nom de la balise, genre $_POST["MaBaliseCheckbox"]. Normalement, son contenu est celui de l'attribut value si elle a été cochée.

  3. #3
    Membre actif
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    490
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2004
    Messages : 490
    Points : 201
    Points
    201
    Par défaut
    oui mais c'est pas là le problème
    la valeur est mémorisée en base de donnée.
    donc quand on va sur la page avec les checkbox, on a comme valeur celle de la base avec coché si la valeur est un. Si on décide de décoché ça met là valeur à 0 dans la base normalement. mais si la valeur est déjà 1 elle est donc cochée...
    et comme j'inverse les valeurs le serveur si c'est coché considère que c'est initialisé..
    donc voilà, je crois que je vais reprendre tout à zero car rien ne marche !
    merci

  4. #4
    Membre éprouvé
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    868
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Avril 2007
    Messages : 868
    Points : 1 022
    Points
    1 022
    Par défaut
    J'ai pas trop compris le fonctionnement de ton truc là alors . Reprends les choses simplement et ça ira peut-être mieux.

  5. #5
    Membre actif
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    490
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2004
    Messages : 490
    Points : 201
    Points
    201
    Par défaut
    ok..

    les utilisateurs arrivent sur une page avec les infos pour lesquels ils sont abonnés.

    style :
    - livres [checkbox]
    - cd [checkbox]

    en fonction de ce qu'ils ont déjà choisi la checkbox est cochée ou non et la valeur de la checkbox c'est soit 1 soit 0 et elle est enregistré dans la base.

    donc quand ils reviennent sur cette page ils ont par exemple cd de coché et s'ils ne veulent plus recevoir les news des cd ils décochent cd..(donc c'est initialisé) et la valeur de cd est donc inversé (si c'est 1=>0 et si 0=>1).
    il faut donc mettre cette nouvelle valeur dans la base.
    mais c'est là ou ça bug et quand je décoche. tout se décoche !

    en gros c'est comment faire ce genre de page...
    c'est plus clair comme ça ? parce que je m'y perds un peu....
    merci

  6. #6
    Membre éprouvé
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    868
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Avril 2007
    Messages : 868
    Points : 1 022
    Points
    1 022
    Par défaut
    À mon avis il faut faire un truc du genre :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <input type="checkbox" checked="<?php echo $MaValeurBinaireTiréeDeLaBase?>" name="CD" value="<?php echo $LeTypeDObjet ?>" />
    La case est cochée selon la valeur binaire de la base de données. S'ils cochent ou décochent, cela met à jour la valeur en fonction de ce qui est coché. Donc :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    if(!isset($_POST["CD"]) {
      miseAZéroDeLaCaseDeValeurCD;
    }
    else {
      Activation...
    }
    La valeur de la checkbox ne doit PAS être la valeur trouvée dans la base. Cette valeur trouvée dans la base doit définir l'attribut checked. La value ici doit surtout définir le nom du type d'objet auquel on se réfère mais à priori, elle ne sert pas dans notre cas.

  7. #7
    Membre régulier Avatar de akara
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    299
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 299
    Points : 122
    Points
    122
    Par défaut
    je sais pas si j'ai bien compris ,j'ai fais un truc dans le genre
    je fais une newletter dans la table client, si le client a coché j'ai dans le champs newsletter 'o' sinon 'n'
    et dans sa page modification j'affiche si est abonné a la newsletter une checkbox : coché pour abonné , décoché pour pas abonné

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    <input type="checkbox" id="newsletter" name="newsletter" value="o" <?php if(isset($newsletter) && $newsletter=="o"){ echo "checked=\"checked\"";} ?>/>
    si décoche, j'enregistre dans la base 'n'
    Le no life répond "Counter Strike : Source"
    Le geek répond "Cascading Style Sheets"
    Ce n'est pas un hasard si deux choses vitales ont le même sigle

  8. #8
    Membre éprouvé
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    868
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Avril 2007
    Messages : 868
    Points : 1 022
    Points
    1 022
    Par défaut
    Oui voilà. La value ne sert pas à grand chose ici en fait.

  9. #9
    Membre actif
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    490
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2004
    Messages : 490
    Points : 201
    Points
    201
    Par défaut
    Merci je vais essayer comme ça..
    parce que là ça fait deux jours que je suis dessus ! j'en ai marre....
    ;-)

Discussions similaires

  1. Réponses: 4
    Dernier message: 04/08/2010, 14h15
  2. Réponses: 2
    Dernier message: 08/12/2008, 22h01
  3. Checkbox checked dans l'évènement MouseDown
    Par abbd dans le forum Windows Forms
    Réponses: 5
    Dernier message: 04/06/2008, 09h53
  4. [PEAR][HTML_QuickForm] Mettre une checkbox à checked
    Par audran12 dans le forum Bibliothèques et frameworks
    Réponses: 1
    Dernier message: 20/06/2007, 15h41
  5. Réponses: 1
    Dernier message: 24/10/2006, 12h10

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