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

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Étudiant
    Inscrit en
    Avril 2009
    Messages
    20
    Détails du profil
    Informations personnelles :
    Âge : 35
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2009
    Messages : 20
    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
    Membre Expert
    Avatar de Doksuri
    Profil pro
    Développeur Web
    Inscrit en
    Juin 2006
    Messages
    2 495
    Détails du profil
    Informations personnelles :
    Âge : 55
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Juin 2006
    Messages : 2 495
    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 averti
    Profil pro
    Étudiant
    Inscrit en
    Avril 2009
    Messages
    20
    Détails du profil
    Informations personnelles :
    Âge : 35
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2009
    Messages : 20
    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 averti
    Profil pro
    Étudiant
    Inscrit en
    Avril 2009
    Messages
    20
    Détails du profil
    Informations personnelles :
    Âge : 35
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2009
    Messages : 20
    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
    Membre Expert
    Avatar de Doksuri
    Profil pro
    Développeur Web
    Inscrit en
    Juin 2006
    Messages
    2 495
    Détails du profil
    Informations personnelles :
    Âge : 55
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Juin 2006
    Messages : 2 495
    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
    Membre Expert
    Avatar de Doksuri
    Profil pro
    Développeur Web
    Inscrit en
    Juin 2006
    Messages
    2 495
    Détails du profil
    Informations personnelles :
    Âge : 55
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Juin 2006
    Messages : 2 495
    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 !

+ 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