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 :

changer la valeur d'un booléen (afficher en Ne pas afficher et inversément)


Sujet :

Langage PHP

  1. #1
    Membre du Club
    Homme Profil pro
    en étude de webmaster
    Inscrit en
    Février 2016
    Messages
    125
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : en étude de webmaster

    Informations forums :
    Inscription : Février 2016
    Messages : 125
    Points : 56
    Points
    56
    Par défaut changer la valeur d'un booléen (afficher en Ne pas afficher et inversément)
    Bonjour.
    J'ai un champs booléen dans ma table suggestion.
    J'essaie que quand je passe mon checkbox en Afficher la valeur change de False à True et
    inversément que je passe mon checkbox en Ne pas afficher la valeur change de True à False

    Pour le if ça marche il change bien la valeur, par contre pour le elseif il ne change pas la valeur.
    Et pourtant quand je test le elseif il me donne bien on, par contre le if me donne NULL alors que c'est un booléens, il devrais me donner true ou false (ou tu du moins 1 ou 0)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    //si $_POST["oui_non"] est egale a 1 (true)
        if($_POST["oui_non"] == 1){
     
            //changer $_POST["oui_non"] en 0 (false)
            $_POST["oui_non"] == 0;
            var_dump($_POST["oui_non"]);
        }
        //sinon si $_POST["oui_non"] est egale a 0 (false)
        elseif ($_POST["oui_non"] == 0) {
     
            //changer $_POST["oui_non"] en 1 (true)
            $_POST["oui_non"] == 1;
     
        }
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    //j'assigne le $_POST["id_modif"] a une variable et je lui demande de vérifier que c'est un entier
            $id_modifier = intval($_POST["id_modif"]);
            //on met dans une variable chaque valeur du formulaire
            $update_type = trim($_POST["update_type"]);
            $oui_non = $_POST["oui_non"];
     
            //je creer une requete sql d'UPDATE pour modifier les champs remplis
            $sql_update = "UPDATE suggestion SET type = '".$update_type."', oui_non = '".$oui_non."' WHERE id_suggestion = '".$id_modifier."'";
            //j'execute la requete sql d'UPDATE
            $resultat_update = mysqli_query($connexion, $sql_update);
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    <div class="input-field col l4">
                  <div class="switch">
                     <label>
                     Ne pas afficher
                     <input type="checkbox" name="oui_non" value="<?php echo $select_modif["oui_non"]; ?>" <?php if($select_modif["oui_non"]){echo "checked";} ?>>
                      <span class="lever"></span>
                      Afficher
                      </label>
                   </div>
               </div>

  2. #2
    Invité
    Invité(e)
    Par défaut
    Bonjour,

    une checkbox ne renvoie une valeur QUE SI elle est cochée.

    d'autre part, on ne modifie pas un $_POST : on utilise une variable.
    Donc :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
        if( !empty($_POST["oui_non"]) ){
            $oui_non = 1;
     
        } else {
            $oui_non = 0;
        }
    ou plus simplement :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $oui_non = ( !empty($_POST["oui_non"]) )? 1 : 0;
    Du coup, le contenu de value n'a (ici, car UNE SEULE case à cocher) pas grande importance... (généralement, on met 1)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
                     <input type="checkbox" name="oui_non" value="1" <?php if($select_modif['oui_non']){echo ' checked="checked"';} ?>>
    Dernière modification par Invité ; 03/05/2017 à 15h43.

  3. #3
    Membre du Club
    Homme Profil pro
    en étude de webmaster
    Inscrit en
    Février 2016
    Messages
    125
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : en étude de webmaster

    Informations forums :
    Inscription : Février 2016
    Messages : 125
    Points : 56
    Points
    56
    Par défaut
    ça marche parfaitement pour le switch entre afficher ou ne pas afficher.
    Maintenant pourrais-tu me donner une piste sur comment faire pour que si je j'en met un sur afficher et bien les autres switch sur ne pas afficher.
    J'entends dans la table de la base de donnée.

  4. #4
    Invité
    Invité(e)
    Par défaut
    Quels "autres" ??
    Comment sont-ils identifiés ?

  5. #5
    Membre du Club
    Homme Profil pro
    en étude de webmaster
    Inscrit en
    Février 2016
    Messages
    125
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : en étude de webmaster

    Informations forums :
    Inscription : Février 2016
    Messages : 125
    Points : 56
    Points
    56
    Par défaut
    J'ai une table qui s'appelle suggestion et dedans il y a un champs id_suggestion auto-incrémenté unsigned, un champs type qui contient les noms des suggestion (exemple: ete, hiver, automne, etc. ), un champs qui s'appelle oui_non qui est un booléen.
    Ce que j'essaie de faire c'est que si je met true ou 1 (afficher) au l'une des suggestion (type) il l'affiche, mais aussi qu'il mettes les autre suggestion en false ou 0 (ne pas afficher).
    Car dans la table pas c'est true ou false mais 1 ou 0.

  6. #6
    Membre du Club
    Homme Profil pro
    en étude de webmaster
    Inscrit en
    Février 2016
    Messages
    125
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : en étude de webmaster

    Informations forums :
    Inscription : Février 2016
    Messages : 125
    Points : 56
    Points
    56
    Par défaut
    D'abord on fait celui que tu m'as donnée jreaux62 pour faire changer le $_POST
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    //Si $_POST["oui_non"] est vide
        if(!empty($_POST["oui_non"])){
     
            //creer une variable $oui_non qui contient 1
            $oui_non = 1;
     
        }//sinon
        else {
     
            //$oui_non contient 0
            $oui_non = 0;
     
        }
    Puis on fait celui là après.
    Avec l'aide de mon prof j'ai trouver ceci qui marche parfaitement pour faire que si je change l'un en Afficher et bien tout les change en Ne pas afficher.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    // update des autres...
            //si $oui_non est egale a 1 (true)
            if($oui_non == 1){
     
                //on fait un UPDATE de tout les autres qui sont different de 0 (false) pour les mettre en 0 (false)
                $sql_update_oui_non = "UPDATE suggestion SET oui_non = 0 WHERE id_suggestion <> '".$id_modifier."'";
                //j'execute la requete sql UPDATE
                $resultat_update_oui_non = mysqli_query($connexion, $sql_update_oui_non);
     
            }

  7. #7
    Membre émérite
    Avatar de badaze
    Homme Profil pro
    Chef de projets info
    Inscrit en
    Septembre 2002
    Messages
    1 412
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Chef de projets info
    Secteur : Transports

    Informations forums :
    Inscription : Septembre 2002
    Messages : 1 412
    Points : 2 522
    Points
    2 522
    Par défaut
    Est-ce que l'utilisateur a la possibilité de changer le réglage ? C'est-à-dire de modifier son choix en le passant oui à non et inversement.

    Si c'est le cas, ton code ne fonctionnera pas car tu mets à jour que si $oui_non == 1 et donc si $oui_non == 0 et qu'auparavant il était égal à 1 tu ne fais aucune modification (ou bien alors elle n'est pas dans le code que tu as posté).
    Cela ne sert à rien d'optimiser quelque chose qui ne fonctionne pas.

    Mon site : www.emmella.fr

    Je recherche le manuel de l'Olivetti Logos 80B.

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

Discussions similaires

  1. Proc reg : ne pas afficher la selection pas à pas
    Par Tranche-taille dans le forum SAS STAT
    Réponses: 5
    Dernier message: 12/09/2014, 16h24
  2. [WD14] afficher ou ne pas afficher des champs sur états
    Par christophe9117 dans le forum WinDev
    Réponses: 5
    Dernier message: 04/02/2010, 10h06
  3. [CR] Ne pas afficher un champ de valeur nulle
    Par mavericks dans le forum SAP Crystal Reports
    Réponses: 4
    Dernier message: 28/03/2007, 16h06
  4. [formulaire] changer une valeur affichée
    Par soad dans le forum Access
    Réponses: 8
    Dernier message: 11/10/2005, 18h59
  5. Changer la valeur de la MTU sur un LAN
    Par nin2 dans le forum Réseau
    Réponses: 3
    Dernier message: 19/02/2005, 15h47

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