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 :

récupérer l'item selctionné d'une liste déroulante dans une variable php [MySQL]


Sujet :

PHP & Base de données

  1. #1
    Membre à l'essai
    Profil pro
    Étudiant
    Inscrit en
    Avril 2009
    Messages
    20
    Détails du profil
    Informations personnelles :
    Âge : 34
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2009
    Messages : 20
    Points : 12
    Points
    12
    Par défaut récupérer l'item selctionné d'une liste déroulante dans une variable php
    Bonjour,
    je débute en php et j'aimerais savoir comment récupérer une valeur sélectionnée dans une liste déroulante.
    je m'explique, j'ai créé une liste déroulante à partir d'une base de données mysql et je voudrais récupérer l'item sélectionné dans une nouvelle variable Php afin de la réutiliser dans une fonction.

    Voici mon code:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    <? php 
              echo '<select>';
              $sql="select valeur from matable";
              $req=mysql_query($sql);
              while ($resu=mysql_fetch_row($req))
                    {
                       echo '<option value="$resu[0].">' $resu[0];
                       echo'</option>'."\n";
                    }
              echo '</select>'."\n";
    ?>
    Est-ce possible? et comment faire?
    Merci
    Car0line

  2. #2
    Expert confirmé
    Avatar de Doksuri
    Profil pro
    Développeur Web
    Inscrit en
    Juin 2006
    Messages
    2 461
    Détails du profil
    Informations personnelles :
    Âge : 54
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Juin 2006
    Messages : 2 461
    Points : 4 634
    Points
    4 634
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    <?php
    echo '<FORM method="POST" action="ta_page.php">';
    echo '<SELECT name="toto">';
    //ta liste deroulante
    echo '</SELECT>';
    echo '</FORM>';
    ?>
    et dans la page ou pointe ton formulaire (ta_page.php)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    <?php
    echo $_POST["toto"];
    ?>
    La forme des pyramides prouve que l'Homme a toujours tendance a en faire de moins en moins.

    Venez discuter sur le Chat de Développez !

  3. #3
    Membre à l'essai
    Profil pro
    Étudiant
    Inscrit en
    Avril 2009
    Messages
    20
    Détails du profil
    Informations personnelles :
    Âge : 34
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2009
    Messages : 20
    Points : 12
    Points
    12
    Par défaut
    merci de ta réponse.
    mais j'ai encore un soucis, j'ai fait comme tu m'as dit, mais j'obtient:
    Notice : Undefined index: toto in ma_page.php ...
    si je comprends bien, il ne reconnait pas ma liste.

    De plus, j'ai mis <? php require ("fonction.php"); ?> en haut de ma page.php afin d'appeler mes fonctions qui seront toutes dans ce fichier. Pour le moment, ce fichier ne contient que la liste déroulante et le proplème est que ça m'affiche une liste déroulante vide en haut de page au niveau du "require". Je ne comprends pas pourquoi.

    Merci d'avence,
    Caroline

  4. #4
    Membre à l'essai
    Profil pro
    Étudiant
    Inscrit en
    Avril 2009
    Messages
    20
    Détails du profil
    Informations personnelles :
    Âge : 34
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2009
    Messages : 20
    Points : 12
    Points
    12
    Par défaut
    J'envoie mon code peut etre que ça aidera:
    Ma page resultat.php est liée à une base de données. Je veux effectuer un calcul de moyenne en appelant la fonction qui se situe dans la page fonction.php. J'aimerais que le calcul se fasse avec la variable choisie dans la liste déroulante. Pour le momment, je sais seulement le faire en notant le critère que je veux dans ma requete sql. J'aimerais aussi que l'utilisateur clique sur un bouton ou un lien pour que le résultat s'affiche. Mais là mon resultat s'affiche automatiquement sans qu'on ai besoin de cliquer.

    page resultats.php
    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
    <html>
    <?php require("fonction.php");?>
    <head>
    <!-- connexion à la base de données -->
    <?php
    mysql_connect("localhost","root","") or die ("erreur de connexion!");
    mysql_select_db("essais");
    ?>
    </head>
    
    <body>
    <div id="contenu">
    <div id="moyenne">
    <h1> Calcul de moyenne </h1>
    <br><br>
    Choisissez vos caractéristiques:
    <!-- liste déroulante critères -->
    <?php
    echo '<FORM method="POST" action="resultats.php">';
    echo '<select name="critere">';
    $sql="select critere from critere";
    $reqlog=mysql_query($sql);
    while($result=mysql_fetch_row($reqlog))
    {
    echo'<option value="$result[0].">',$result[0];
    echo'</option>'."\n";
    }
    echo '</select>';
    echo '</FORM>';
    ?>
    <?php
    echo $_POST["critere"];
    ?>
    <!-- bouton calculer -->
    <input value="Calculer" name="calcul" id="send" type="button" onclick="<?php moyenne()?>" >
    <?php moyenne() ?>
    </div>
    page fonction.php:
    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
    <!-- connexion à la base de données -->
    <?php
    mysql_connect("localhost","root","") or die ("erreur de connexion!");
    mysql_select_db("essais");
    ?>
    <!-- fonction moyenne -->
    <?php
    function moyenne()
    {
    $moyenne1=mysql_query("SELECT AVG(debit) FROM scenario1");
    $moyenne=mysql_result($moyenne1,0);
    $moyenne=(float)($moyenne);
    print round($moyenne,2);
    }
    ?>	
    Donc enfet j'aimerais que "debit" soit remplassé par la variable contenant le choix fait par l'utilisateur dans la liste déroulante.
    Je ne sais pas si c'est possible, ni comment m'y prendre.
    Car0line

  5. #5
    Expert confirmé
    Avatar de Doksuri
    Profil pro
    Développeur Web
    Inscrit en
    Juin 2006
    Messages
    2 461
    Détails du profil
    Informations personnelles :
    Âge : 54
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Juin 2006
    Messages : 2 461
    Points : 4 634
    Points
    4 634
    Par défaut
    salut,
    il faut tester les vairables postees :
    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
    <?php
    //tu peux tester si la variable existe
    //mais tu ne sais pas si elle est vide ou pas
    if(isset($_POST["critere"]))
    {
    echo 'La variable existe : ';
    echo $_POST["critere"];
    }
     
    //ou alors, tu peux directement verfier si la variable n'est pas vide
    if(!empty($_POST["critere"]))
    {
    echo 'La variable n\'est pas vide : ';
    echo $_POST["critere"];
    }
    ?>
    ps : le bouton qui valide le formulaire doit (enfin, je crois ^^) etre dans le <form></form>

    edit : tu as une connexion dans ton fichier principal et une autre dans le fichier fonction inclut... il y en a une inutile
    La forme des pyramides prouve que l'Homme a toujours tendance a en faire de moins en moins.

    Venez discuter sur le Chat de Développez !

  6. #6
    Expert confirmé
    Avatar de Doksuri
    Profil pro
    Développeur Web
    Inscrit en
    Juin 2006
    Messages
    2 461
    Détails du profil
    Informations personnelles :
    Âge : 54
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Juin 2006
    Messages : 2 461
    Points : 4 634
    Points
    4 634
    Par défaut
    piouf, je suis fatigue, j'avais pas vu ta 2eme question
    pour que debit soit remplace par la valeur postee, tu dois passer un parametre dans ta fonction

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    function moyenne($critere)
    {
    $moyenne1=mysql_query("SELECT AVG(".$critere.") FROM scenario1");
    $moyenne=mysql_result($moyenne1,0);
    $moyenne=(float)($moyenne);
    print round($moyenne,2);
    }
    et dans ta page principale :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    moyenne($_POST["critere"]);
    La forme des pyramides prouve que l'Homme a toujours tendance a en faire de moins en moins.

    Venez discuter sur le Chat de Développez !

  7. #7
    Membre à l'essai
    Profil pro
    Étudiant
    Inscrit en
    Avril 2009
    Messages
    20
    Détails du profil
    Informations personnelles :
    Âge : 34
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2009
    Messages : 20
    Points : 12
    Points
    12
    Par défaut
    j'ai écrit ce que tu mets dans ta premiere réponse, je ne pense pas que se soit normal, ma variable n'existe pas...
    je vais tester ta seconde réponse et essayer de revenir (par ce que je suis en stage sans compte internet donc je doit squater le compte de quelqu'un, pas pratique)
    merci beaucoup de m'aider.

  8. #8
    Membre à l'essai
    Inscrit en
    Avril 2009
    Messages
    23
    Détails du profil
    Informations forums :
    Inscription : Avril 2009
    Messages : 23
    Points : 11
    Points
    11
    Par défaut
    caro,
    j'ai le meme probleme j'ai une solution mais j'en suis pas sur il faut que tu ajoutes <input hidden...>

  9. #9
    Membre à l'essai
    Profil pro
    Étudiant
    Inscrit en
    Avril 2009
    Messages
    20
    Détails du profil
    Informations personnelles :
    Âge : 34
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2009
    Messages : 20
    Points : 12
    Points
    12
    Par défaut
    Demmote, saurais tu pourquoi ma variable n'existe pas? et du coup ca ne marche pas non plus la suite

    Amesnaou, tu mets ça où??

    merci

  10. #10
    Membre à l'essai
    Profil pro
    Étudiant
    Inscrit en
    Avril 2009
    Messages
    20
    Détails du profil
    Informations personnelles :
    Âge : 34
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2009
    Messages : 20
    Points : 12
    Points
    12
    Par défaut
    C'est bon ma variable existe j'ai rajouté un oncahnge="form.submit()" dans mon select.
    Du coup j'obtient le code:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    echo '<FORM method="POST" action="resultats.php">';
    echo '<select name="critere" id="select" onchange="form.submit()">';
    $sql="select critere from critere";
    $reqlog=mysql_query($sql);
    while($result=mysql_fetch_row($reqlog))
    {
    echo'<option value="$result[0].">',$result[0];
    echo'</option>';
    }
    echo '</select>';
    echo '</FORM>';
    Par contre, a chaque fois que je clique pour choisir un item, ça revient automatique ment sur le premier, et je ne vois pas pourquoi. Auriez vous une explication?

    J'ai un autre soucis quand j'appel ma fonction qui va avec. J'ai le message:
    Warning: mysql_result(): supplied argument is not a valid MySQL result resource in ...
    pour simplifier voici mon code:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    function moyenne($critere)
    {
    $moyenne1=mysql_query("SELECT AVG(".$critere.") FROM scenario1");
    $moyenne=mysql_result($moyenne1,0); // le message s'affiche pour cette ligne
    $moyenne=(float)($moyenne);
    print round($moyenne,2);
    }
    c'est peut etre due à ma variable? comment éviter ça?

  11. #11
    Membre à l'essai
    Profil pro
    Étudiant
    Inscrit en
    Avril 2009
    Messages
    20
    Détails du profil
    Informations personnelles :
    Âge : 34
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2009
    Messages : 20
    Points : 12
    Points
    12
    Par défaut
    Enfet c'etait une erreur de guillemets...
    Donc l'erreur ne s'affiche plus.
    Merci de votre aide!

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

Discussions similaires

  1. Récupérer l'indice d'une valeur choisie dans une liste déroulante
    Par winflow dans le forum VB 6 et antérieur
    Réponses: 1
    Dernier message: 06/01/2014, 12h15
  2. Réponses: 4
    Dernier message: 20/02/2012, 16h59
  3. Réponses: 1
    Dernier message: 12/12/2011, 10h07
  4. Réponses: 6
    Dernier message: 25/10/2009, 11h56
  5. Réponses: 11
    Dernier message: 26/04/2007, 10h40

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