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

PHP & Base de données Discussion :

selected dans liste déroulante [MySQL]


Sujet :

PHP & Base de données

  1. #1
    Membre confirmé
    Homme Profil pro
    Enseignant
    Inscrit en
    Février 2012
    Messages
    90
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : Février 2012
    Messages : 90
    Par défaut selected dans liste déroulante
    bonjour,
    Voici mon formulaire validé par un bouton submit:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    <form name="emploi" action="form_situation_emploi.php" method="post" >
    statut actuel <select name="statut_actuel" value="<?php  echo $_POST['statut_actuel'];?>">
       <option value=" " >-------------</option>
       <option value="Demandeur d'emploi non inscrit">Demandeur d'emploi non inscrit</option>
       <option value="Demandeur d'emploi inscrit indemnisé">Demandeur d'emploi inscrit indemnisé</option>
        <option value="Demandeur d'emploi en formation">Demandeur d'emploi en formation</option>
       <option value="Demandeur d'emploi en contrat aidé">Demandeur d'emploi en contrat aidé</option>
     </select>..../form
    j'utilise ce bout de code suivant <?php echo $_POST['statut_actuel'];?> dans value afin que l'option reste visible lors de la validation du formulaire. Malheureusement ca marche pour un
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <input type="text" name="xxxx" value="<?php echo $_POST['xxxx'];?>">
    mais pas pour la liste déroulante ci dessus.
    Ou est l'erreur? merci d'avance pour votre aide!!!

  2. #2
    Rédacteur

    Avatar de Bovino
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2008
    Messages
    23 647
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2008
    Messages : 23 647
    Billets dans le blog
    20
    Par défaut
    Une balise <select> n'a pas d'attribut value...
    Il faut que tu mettes un attribut selected sur la balise <option> voulue.
    Pas de question technique par MP !
    Tout le monde peut participer à developpez.com, vous avez une idée, contactez-moi !
    Mes formations video2brain : La formation complète sur JavaScriptJavaScript et le DOM par la pratiquePHP 5 et MySQL : les fondamentaux
    Mon livre sur jQuery
    Module Firefox / Chrome d'intégration de JSFiddle et CodePen sur le forum

  3. #3
    Membre confirmé
    Homme Profil pro
    Enseignant
    Inscrit en
    Février 2012
    Messages
    90
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : Février 2012
    Messages : 90
    Par défaut
    j'ai effectivement essayé ton idée en utilisant selected dans option, ca ne fonctionne pas !
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    statut actuel <select name="statut_actuel" value="<?php  echo $_POST['statut_actuel'];?>"> 
       <option value=" " >-------------</option>
       <option value="Demandeur d'emploi non inscrit"    <?php echo (isset($_POST['statut_actuel']) && $_POST['statut_actuel'] == "Demandeur d'emploi non inscrit")?"selected=selected":""; ?>>Demandeur d'emploi non inscrit</option>
       <option value="Demandeur d'emploi inscrit non indemnisé"   <?php echo (isset($_POST['statut_actuel']) && $_POST['statut_actuel'] == "Demandeur d'emploi inscrit non indemnisé")?"selected=selected":""; ?>>Demandeur d'emploi inscrit non indemnisé</option>
     
    etc....
    </select>

  4. #4
    Expert confirmé

    Homme Profil pro
    Développeur Web
    Inscrit en
    Septembre 2010
    Messages
    5 420
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Septembre 2010
    Messages : 5 420
    Par défaut
    J'écrirais plutôt :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <?php echo (isset($_POST['statut_actuel']) && $_POST['statut_actuel'] == "Demandeur d'emploi non inscrit")? 'selected="selected"' : ""; ?>
    Si cela ne fonctionne pas c'est sans doute que ta condition retourne faux.
    Vérifies aussi le html généré par ta page dans ton navigateur (Ctrl+u avec firefox ou chrome)

  5. #5
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Par défaut
    C'est plus prudent de prévoir les espaces :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ' selected="selected" '
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  6. #6
    Membre confirmé
    Homme Profil pro
    Enseignant
    Inscrit en
    Février 2012
    Messages
    90
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : Février 2012
    Messages : 90
    Par défaut
    Rien à faire avec ou sans espace , le script ne fonctionne pas!!!
    Qui peut m'aider?
    merci

  7. #7
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Par défaut
    Tu as contrôlé ce que valait $_POST['statut_actuel'] ?
    Tu as contrôlé si le "selected" était dans ton code HTML ?
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  8. #8
    Membre confirmé
    Homme Profil pro
    Enseignant
    Inscrit en
    Février 2012
    Messages
    90
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : Février 2012
    Messages : 90
    Par défaut
    en faisant CTRL+U je visualise le code html, pas le code php, mais ca c'est normal

  9. #9
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par sabotage Voir le message
    Tu as contrôlé ce que valait $_POST['statut_actuel'] ?
    Tu as contrôlé si le "selected" était dans ton code HTML ?
    Comme le signale sabotage echo $_POST machintruc , de préférence affecter un autre nom pour plus de simplicité de la manipulation

  10. #10
    Expert confirmé

    Homme Profil pro
    Développeur Web
    Inscrit en
    Septembre 2010
    Messages
    5 420
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Septembre 2010
    Messages : 5 420
    Par défaut
    Citation Envoyé par afibase Voir le message
    en faisant CTRL+U je visualise le code html, pas le code php, mais ca c'est normal
    Et tu as vérifié si ton select était correctement écrit dans le code html ?
    Si tout est ok à ce niveau là c'est (comme déjà dit) que ta condition
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    isset($_POST['statut_actuel']) && $_POST['statut_actuel'] == "Demandeur d'emploi non inscrit"
    n'est pas remplie.

  11. #11
    Membre confirmé
    Homme Profil pro
    Enseignant
    Inscrit en
    Février 2012
    Messages
    90
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : Février 2012
    Messages : 90
    Par défaut
    merci pour vos observations; J'ai vérifié tout est bien écrit:
    <HTML>
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    <select name="statut_actuel"> 
    	<option value=""></option>
    	<option value="Demandeur d'emploi non inscrit"<?php echo (isset($_POST['statut_actuel']) && $_POST['statut_actuel'] == "Demandeur d'emploi non inscrit")? ' selected="selected" ' : ""; ?>>Demandeur d'emploi non inscrit</option>
    	<option value="Demandeur d'emploi inscrit non indemnisé"<?php echo (isset($_POST['statut_actuel']) && $_POST['statut_actuel'] == "Demandeur d'emploi inscrit non indemnisé")? ' selected="selected" ' : ""; ?>>Demandeur d'emploi inscrit non indemnisé</option>
     	</select>
    </HTML>

  12. #12
    Membre confirmé
    Homme Profil pro
    Enseignant
    Inscrit en
    Février 2012
    Messages
    90
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : Février 2012
    Messages : 90
    Par défaut
    ok j'ai trouvé l'erreur!!!!!!
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Value="demandeur  d'emploi inscrit" (avec apostrohe) et Value="demandeur  demploi (sans apostrophe) inscrit"
    n'est pas reconnu de la même facon. Donc j'ai supprimer les apostrohes dans tous les VALUE et ca fonctionne!!!
    j'en déduit qu'il faut éviter les ponctuations dans l'option VALUE
    Merci à tous, a+
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    <select name="statut_actuel"> 
    	<option value="" >-------------</option>
    	<option value="Demandeur emploi non inscrit"<?php echo (isset($_POST['statut_actuel']) && $_POST['statut_actuel'] == "Demandeur emploi non inscrit")? ' selected="selected" ' : ""; ?>>Demandeur d'emploi non inscrit</option>
    	<option value="Demandeur emploi inscrit non indemnisé"<?php echo (isset($_POST['statut_actuel']) && $_POST['statut_actuel'] == "Demandeur emploi inscrit non indemnisé")?"selected=selected":""; ?>>Demandeur d'emploi inscrit non indemnisé</option>
    	<option value="Demandeur emploi inscrit indemnisé"<?php echo (isset($_POST['statut_actuel']) && $_POST['statut_actuel'] == "Demandeur emploi inscrit indemnisé")? ' selected="selected" ' : ""; ?>>Demandeur d'emploi inscrit indemnisé</option> 	
     </select>

  13. #13
    Expert confirmé

    Homme Profil pro
    Développeur Web
    Inscrit en
    Septembre 2010
    Messages
    5 420
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Septembre 2010
    Messages : 5 420
    Par défaut
    Citation Envoyé par afibase Voir le message
    j'en déduit qu'il faut éviter les ponctuations dans l'option VALUE
    Pas nécessairement, mais effectivement cela peut faciliter les choses.

  14. #14
    Rédacteur

    Avatar de Bovino
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2008
    Messages
    23 647
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2008
    Messages : 23 647
    Billets dans le blog
    20
    Par défaut
    Surtout que dans ton cas, il s'agit plus d'un libellé que d'une valeur. Tu gagnerais à te créer un dictionnaire et à utiliser des valeurs numériques par exemple, plus faciles à différencier et moins piégeuses !
    Pas de question technique par MP !
    Tout le monde peut participer à developpez.com, vous avez une idée, contactez-moi !
    Mes formations video2brain : La formation complète sur JavaScriptJavaScript et le DOM par la pratiquePHP 5 et MySQL : les fondamentaux
    Mon livre sur jQuery
    Module Firefox / Chrome d'intégration de JSFiddle et CodePen sur le forum

  15. #15
    Expert confirmé

    Homme Profil pro
    Développeur Web
    Inscrit en
    Septembre 2010
    Messages
    5 420
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Septembre 2010
    Messages : 5 420
    Par défaut
    Ouais si ton application est en cours de développement et que cela ne te demande pas trop de modifs tu devrais t'intéresser de près à la remarque de Bovino. Un autre avantage de la méthode avec des correspondances numériques est que cela te permet aussi de sécuriser tes requêtes sans soucis.

  16. #16
    Membre confirmé
    Homme Profil pro
    Enseignant
    Inscrit en
    Février 2012
    Messages
    90
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : Février 2012
    Messages : 90
    Par défaut
    bovino:Tu gagnerais à te créer un dictionnaire et à utiliser des valeurs numériques par exemple, plus faciles à différencier et moins piégeuses !
    Donne moi un exemple sil te plait?

  17. #17
    Expert confirmé

    Homme Profil pro
    Développeur Web
    Inscrit en
    Septembre 2010
    Messages
    5 420
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Septembre 2010
    Messages : 5 420
    Par défaut
    Citation Envoyé par afibase Voir le message
    Donne moi un exemple sil te plait?
    Bah c'est juste une correspondance.
    Par exemple tu pourrais avoir un formulaire comme ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    <select name="statut_actuel"> 
    	<option value="" >-------------</option>
    	<option value="0" <?php echo (isset($_POST['statut_actuel']) && $_POST['statut_actuel'] == "0")? ' selected="selected" ': ""; ?>>Demandeur d'emploi non inscrit</option>
    	<option value="1" <?php echo (isset($_POST['statut_actuel']) && $_POST['statut_actuel'] == "1")? ' selected="selected" ': ""; ?>>Demandeur d'emploi inscrit non indemnisé</option>
    	<option value="2" <?php echo (isset($_POST['statut_actuel']) && $_POST['statut_actuel'] == "2")? ' selected="selected" ': ""; ?>>Demandeur d'emploi inscrit indemnisé</option> 	
     </select>
    Après soit pour l'insertion soit pour la lecture, il te suffit de faire une association pour retrouver les libellés. Par exemple
    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
    $lib_assoc = array();
    $lib_assoc[0] = "Demandeur d'emploi non inscrit";
    $lib_assoc[1] = "Demandeur d'emploi inscrit non indemnisé";
    $lib_assoc[2] = "Demandeur d'emploi inscrit indemnisé";
     
    $statut_actuel = isset($_POST['statut_actuel']) && is_numeric($_POST['statut_actuel']) &&  $_POST['statut_actuel'] >= 0 && $_POST['statut_actuel'] <= 2 ? intval($_POST['statut_actuel']) : null;
     
    if (isset($statut_actuel))
    {
    // ici tu peux faire une insertion en bdd avec une valeur blindée insensible aux injections car $statut_actuel a été vérifié et casté
    }
     
    // pour retrouver le libellé
    if (isset($statut_actuel,$lib_assoc[$statut_actuel]))
    {
    echo 'vous avez déclarer être : "'.$lib_assoc[$statut_actuel].'"';
    }
    d'ailleurs avec le tableau $lib_assoc tu pourrais ensuite simplifier encore l'écriture de ton formulaire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    <select name="statut_actuel"> 
    	<option value="" >-------------</option>
    	<option value="0" <?php echo (isset($_POST['statut_actuel']) && $_POST['statut_actuel'] == "0")? ' selected="selected" ': ""; ?>><?php echo $lib_assoc[0] ?></option>
    	<option value="1" <?php echo (isset($_POST['statut_actuel']) && $_POST['statut_actuel'] == "1")? ' selected="selected" ': ""; ?>><?php echo $lib_assoc[1] ?></option>
    	<option value="2" <?php echo (isset($_POST['statut_actuel']) && $_POST['statut_actuel'] == "2")? ' selected="selected" ': ""; ?>><?php echo $lib_assoc[2] ?></option> 	
     </select>
    L'autre avantage est que si tu voulais modifier tes libellées il te suffirais juste de modifier $lib_assoc.

  18. #18
    Membre confirmé
    Homme Profil pro
    Enseignant
    Inscrit en
    Février 2012
    Messages
    90
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : Février 2012
    Messages : 90
    Par défaut
    Ok j'ai compris, je suis pas un fan des tableaux en php, pour une fois je vois leurs réels utilisationn . Je vais m'y mettre!

    Merci encore à tous!

  19. #19
    Expert confirmé

    Homme Profil pro
    Développeur Web
    Inscrit en
    Septembre 2010
    Messages
    5 420
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Septembre 2010
    Messages : 5 420
    Par défaut
    Citation Envoyé par afibase Voir le message
    Ok j'ai compris, je suis pas un fan des tableaux en php, pour une fois je vois leurs réels utilisationn . Je vais m'y mettre!

    Merci encore à tous!
    Ah oui tu as tout intérêt c'est une des clés de la programmation en php. D'ailleurs à partir du code précédent tu vois qu'il y a une belle symétrie dans l'écriture du formulaire, on peut donc automatiser son écriture en faisant :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    <select name="statut_actuel"> 
    	<option value="" >-------------</option>
    	<?php foreach ($lib_assoc as $key => $value)
        {
            $selected = isset($_POST['statut_actuel']) && $_POST['statut_actuel'] == $key ? 'selected="selected"': '';
            // le ."\n" en fin de ligne sert juste pour faire un retour ligne et faire plus propre dans le code html généré (inutile dans l'absolu)
            echo '<option value="'.$key.'" '.$selected.'>'.$value.'</option>'."\n";
        }
        ?>
    </select>
    Et voilà maintenant tu n'as plus à toucher à cette partie du code. Tout ajout ou modification d'option peut se faire directement depuis le tableau $lib_assoc.
    Magique, non ?

    En cas d'ajout il faudra juste penser à modifier la condition de validité $_POST['statut_actuel'] <=2 (dans le code plus haut). Mais si tu ne fais pas de trous dans ton tableau $lib_assoc tu peux aussi automatiser cette condition en remplaçant par $_POST['statut_actuel'] < count($lib_assoc);)

  20. #20
    Membre confirmé
    Homme Profil pro
    Enseignant
    Inscrit en
    Février 2012
    Messages
    90
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : Février 2012
    Messages : 90
    Par défaut
    ok t'es le meilleur !!!!!

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 2 12 DernièreDernière

Discussions similaires

  1. Selected par défaut dans liste déroulante dynamique
    Par casimirine dans le forum Langage
    Réponses: 2
    Dernier message: 25/06/2013, 10h33
  2. [MySQL] Actualisation page après sélection dans liste déroulante
    Par Invité dans le forum PHP & Base de données
    Réponses: 3
    Dernier message: 15/01/2013, 20h07
  3. [AJAX] execution à la selection dans liste déroulantes
    Par cUs3Mp dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 23/12/2008, 10h25
  4. [SQL] récupérer sélection dans liste déroulante
    Par nerick dans le forum PHP & Base de données
    Réponses: 7
    Dernier message: 06/12/2005, 11h30
  5. Réponses: 2
    Dernier message: 25/11/2005, 12h09

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