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 :

Value dans une liste déroulante


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Décembre 2008
    Messages
    109
    Détails du profil
    Informations forums :
    Inscription : Décembre 2008
    Messages : 109
    Par défaut Value dans une liste déroulante
    Bonjour je viens de crée une liste déroulante via intermédiaire de ma base de donnée, celle-ci fonctionne à merveille :

    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
    37
    38
    <div class="option">
       <select name="Items" id="Items">
     <?php
     
    try
    {
        // On se connecte à MySQL
        $pdo_options[PDO::ATTR_ERRMODE] = PDO::ERRMODE_EXCEPTION;
        $bdd = new PDO('mysql:host=localhost;dbname=projet_isep', 'root', '', $pdo_options);
     
        // On récupère tout le contenu de la table jeux_video
        $reponse = $bdd->query('SELECT * FROM villes');
     
        // On affiche chaque entrée une à une
        while ($donnees = $reponse->fetch())
        {
        ?>
     
    		<option value="<?php echo $donnees['id']; ?>"><?php echo $donnees['nom']; ?></option>
     
     
     
    <?php
        }
     
     
        $reponse->closeCursor(); // Termine le traitement de la requête
     
    }
    catch(Exception $e)
    {
        // En cas d'erreur précédemment, on affiche un message et on arrête tout
        die('Erreur : '.$e->getMessage());
    }
    ?>
     
    	</select>
    </div>

    Je voudrais maintenant récupérer la value de ma lsite déroulante pour en affichier l'image qui correspondra dans mas base de donnée, or quand je fais :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <? echo $_POST['Items']  ?>
    j'ai l'erreur suivante : Notice: Undefined index: Items in C:\wamp\www\Projet_isep\projet_isep.php on line 177

    Merci de votre aide

  2. #2
    Expert confirmé

    Avatar de FirePrawn
    Homme Profil pro
    Consultant technique
    Inscrit en
    Mars 2011
    Messages
    3 179
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Haut Rhin (Alsace)

    Informations professionnelles :
    Activité : Consultant technique

    Informations forums :
    Inscription : Mars 2011
    Messages : 3 179
    Par défaut
    Bonjour,

    Il te faut un formulaire pour récupérer des données en $_POST.
    Avant toute chose : lire le mode d'emploi du forum et ses règles.
    Je ne réponds pas aux questions techniques en MP.

  3. #3
    Membre confirmé
    Inscrit en
    Décembre 2008
    Messages
    109
    Détails du profil
    Informations forums :
    Inscription : Décembre 2008
    Messages : 109
    Par défaut
    bonjour,

    Alors comment récupérer la valeur de ma liste déroulante qui aura été choisie?

    EDIT!!! : j'aivas oublié les balise form, mais j'ai toujours l'erreur qui s'affiche :

    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
    37
    <form method="POST" action="projet_isep.php"> 
       <select name="Items" id="Items">
     <?php
     
    try
    {
        // On se connecte à MySQL
        $pdo_options[PDO::ATTR_ERRMODE] = PDO::ERRMODE_EXCEPTION;
        $bdd = new PDO('mysql:host=localhost;dbname=projet_isep', 'root', '', $pdo_options);
     
        // On récupère tout le contenu de la table jeux_video
        $reponse = $bdd->query('SELECT * FROM villes');
     
        // On affiche chaque entrée une à une
        while ($donnees = $reponse->fetch())
        {
        ?>
     
    		<option value="<?php echo $donnees['id']; ?>"><?php echo $donnees['nom']; ?></option>
     
     
     
    <?php
        }
     
     
        $reponse->closeCursor(); // Termine le traitement de la requête
     
    }
    catch(Exception $e)
    {
        // En cas d'erreur précédemment, on affiche un message et on arrête tout
        die('Erreur : '.$e->getMessage());
    }
    ?>
    	</select>
    	</form>

  4. #4
    Expert confirmé

    Avatar de FirePrawn
    Homme Profil pro
    Consultant technique
    Inscrit en
    Mars 2011
    Messages
    3 179
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Haut Rhin (Alsace)

    Informations professionnelles :
    Activité : Consultant technique

    Informations forums :
    Inscription : Mars 2011
    Messages : 3 179
    Par défaut
    Non absolument pas. Un formulaire est un 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
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
     
    <div class="option">
    <form method="post" action="page.php" id="form_items">
       <select name="Items" id="Items">
     <?php
     
    try
    {
        // On se connecte à MySQL
        $pdo_options[PDO::ATTR_ERRMODE] = PDO::ERRMODE_EXCEPTION;
        $bdd = new PDO('mysql:host=localhost;dbname=projet_isep', 'root', '', $pdo_options);
     
        // On récupère tout le contenu de la table jeux_video
        $reponse = $bdd->query('SELECT * FROM villes');
     
        // On affiche chaque entrée une à une
        while ($donnees = $reponse->fetch())
        {
        ?>
     
    		<option value="<?php echo $donnees['id']; ?>"><?php echo $donnees['nom']; ?></option>
     
     
     
    <?php
        }
     
     
        $reponse->closeCursor(); // Termine le traitement de la requête
     
    }
    catch(Exception $e)
    {
        // En cas d'erreur précédemment, on affiche un message et on arrête tout
        die('Erreur : '.$e->getMessage());
    }
    ?>
     
    	</select>
         <input type="submit" value="envoyer" />
    </form>
    </div>
    Avant toute chose : lire le mode d'emploi du forum et ses règles.
    Je ne réponds pas aux questions techniques en MP.

  5. #5
    Membre confirmé
    Inscrit en
    Décembre 2008
    Messages
    109
    Détails du profil
    Informations forums :
    Inscription : Décembre 2008
    Messages : 109
    Par défaut
    excusez mon erreur.

    Mais si je cherche à faire un :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <?php echo $_POST['Items']  ?>
    sur ma page pour vérifier que tout marche bien j'ai toujours l'erreur suivante : Notice: Undefined index: Items

  6. #6
    Expert confirmé

    Avatar de FirePrawn
    Homme Profil pro
    Consultant technique
    Inscrit en
    Mars 2011
    Messages
    3 179
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Haut Rhin (Alsace)

    Informations professionnelles :
    Activité : Consultant technique

    Informations forums :
    Inscription : Mars 2011
    Messages : 3 179
    Par défaut
    Fais voir tout ton code ( les deux pages concernées ).
    Avant toute chose : lire le mode d'emploi du forum et ses règles.
    Je ne réponds pas aux questions techniques en MP.

  7. #7
    Invité
    Invité(e)
    Par défaut
    Bonjour,
    et comme ca ?
    <?php echo $_POST['Items']; ?>
    ou
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <?php if(isset($_POST['Items'])) { echo $_POST['Items']; } ?>

  8. #8
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par adam974 Voir le message
    Je voudrais maintenant récupérer la value de ma lsite déroulante pour en affichier l'image qui correspondra dans mas base de donnée
    A mon avis, il faut surtout définir exactement l'objectif, pour pouvoir déterminer le moyen de l'atteindre le plus efficacement.

    SI tu veux :
    1/
    - sélectionner la ville dans la liste,
    - dès qu'on a cliqué dans la liste : afficher l'image de la ville directement, SANS rechargement de page,
    => la solution est javascript + AJAX

    2/
    - sélectionner la ville dans la liste,
    - soumettre le formulaire,
    - puis, APRES rechargement de la page, afficher l'image de la ville,
    => bouton "submit" + $_POST suffisent

  9. #9
    Membre confirmé
    Inscrit en
    Décembre 2008
    Messages
    109
    Détails du profil
    Informations forums :
    Inscription : Décembre 2008
    Messages : 109
    Par défaut
    Citation Envoyé par jreaux62 Voir le message
    A mon avis, il faut surtout définir exactement l'objectif, pour pouvoir déterminer le moyen de l'atteindre le plus efficacement.

    SI tu veux :
    1/
    - sélectionner la ville dans la liste,
    - dès qu'on a cliqué dans la liste : afficher l'image de la ville directement, SANS rechargement de page,
    => la solution est javascript + AJAX

    2/
    - sélectionner la ville dans la liste,
    - soumettre le formulaire,
    - puis, APRES rechargement de la page, afficher l'image de la ville,
    => bouton "submit" + $_POST suffisent

    Sa serait plus la première solution, j'aurai mieux du spécifier se que je cherchais à faire.

    J'ai trouvé une fonction onChange (http://www.thelin.net/laurent/labo/j...oulante.html):
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    <script type="text/javascript">
     
    	   function Lien() {
    	i = document.Choix.Liste.selectedIndex;
    	if (i == 0) return;
    	url = document.Choix.Liste.options[i].value;
    	parent.location.href = url;
    	}
     
    	   </script>
    Mais je voudrais maintenant récupérer la value de ma lsite déroulante, est-il possible de modifier la fonction?

  10. #10
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par adam974 Voir le message
    j'aurai mieux du spécifier se que je cherchais à faire.
    tu peux encore le faire !

    "... afficher l'image de la ville ..."
    -> où est l'image ?
    -> comment comptes-tu la récupérer ? l'afficher ?

  11. #11
    Membre confirmé
    Inscrit en
    Décembre 2008
    Messages
    109
    Détails du profil
    Informations forums :
    Inscription : Décembre 2008
    Messages : 109
    Par défaut
    le nom de mon image se trouve dans ma base de données et toutes les images se trouvent dans un dossier appelé fond.

    ma base de donnée est actuellement constitué d'une table avec comme colonne id nom et photo.

    A travers ma liste déroulante j'affiche le nom des villes et si je change de ville je dois changer la photo en fond d'écran de mon site avec la photo correspondant.

    EDIT :

    Alors voila la fonction que j'ai créé entre les balises head :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    <script type="text/javascript">
     
    	   function Lien() {
    	i = document.Choix.Liste.selectedIndex;
    	if (i == 0) return;
    	document.body.background = 'images/'+i+'.png';
     
    	}
     
    	   </script>
    et ma liste déroulante :
    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
    37
    38
    39
    40
    41
    42
    <div class="option">
    <form method="post" action="projet_isep.php" id="form_items">
       <select name="Items" id="Items" onChange="Lien()">
     <?php
     
    try
    {
        // On se connecte à MySQL
        $pdo_options[PDO::ATTR_ERRMODE] = PDO::ERRMODE_EXCEPTION;
        $bdd = new PDO('mysql:host=localhost;dbname=projet_isep', 'root', '', $pdo_options);
     
        // On récupère tout le contenu de la table jeux_video
        $reponse = $bdd->query('SELECT * FROM villes');
     
        // On affiche chaque entrée une à une
        while ($donnees = $reponse->fetch())
        {
        ?>
     
    		<option value="<?php echo $donnees['nom']; ?>"><?php echo $donnees['nom']; ?></option>
     
     
     
     
    <?php
        }
     
     
     
        $reponse->closeCursor(); // Termine le traitement de la requête
     
    }
    catch(Exception $e)
    {
        // En cas d'erreur précédemment, on affiche un message et on arrête tout
        die('Erreur : '.$e->getMessage());
    }
    ?>
     
    	</select>
    </form>
    </div>
    mais sa ne marche pas, où est ce que je me serai trompé SVP

  12. #12
    Membre Expert
    Avatar de Kaamo
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    1 165
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 1 165
    Par défaut
    Pourquoi stocker en Base de Données le nom de la photo ? Pourquoi ne pas nommer la photo en fonction de l'#id de la ville ?

    par exemple, pour la ville Grenoble qui a l'ID 2 aura une image nommée 2.GIF dans le dossier 'fond'.

    Ainsi, on peut imaginer un code javascript et HTML suivant :

    HTML :
    - soit initialiser l'image avec une ville par défaut, soit créer une image bidon, soit ne rien afficher ... bref, cela dépend des besoins.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    <img src="fond/0.gif" title="Ma ville" id="img_ville" />
    [...]
    <form method="post" action="projet_isep.php" name="form_items">
    <select name="Items" id="Items" onchange="change_image(this);">
    [...]
    Javascript :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    function change_image(input_select) {
    	i = input_select.selectedIndex;
            document.getElementById('img_ville').src = "fond/" + input_select.options[i].value + ".gif";
    }

  13. #13
    Invité
    Invité(e)
    Par défaut
    Et donc ...
    - comment dois-tu t'y prendre ?
    - quelles sont les étapes ?
    Mon but ici est de te faire réfléchir toi-même à la conception.

    Te donner d'emblée une solution ne t'apportera pas grand'chose.
    Mais bon. Regarde de ce coté : Introduction à AJAX et interaction avec PHP

Discussions similaires

  1. Plusieures "values" dans une liste déroulante
    Par Yokosuma dans le forum Balisage (X)HTML et validation W3C
    Réponses: 4
    Dernier message: 07/04/2008, 12h58
  2. Saisie de plusieurs caractère dans une liste déroulante
    Par Oluha dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 07/03/2005, 15h32
  3. plusieurs value dans une liste deroulante
    Par lepierre dans le forum Balisage (X)HTML et validation W3C
    Réponses: 8
    Dernier message: 16/11/2004, 15h53
  4. Rajouter "Tous" dans une Liste Déroulante
    Par smirold dans le forum IHM
    Réponses: 7
    Dernier message: 25/10/2004, 14h29

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