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 :

Liste déroulante vers variable


Sujet :

Langage PHP

  1. #1
    Membre éclairé
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2007
    Messages
    758
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Finance

    Informations forums :
    Inscription : Février 2007
    Messages : 758
    Par défaut Liste déroulante vers variable
    Bonjour

    je vous explique ; j'ai dans un formulaire une zone de texte,

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    <p>Personne : <input type="text" size="30" name="id_personne" value="<?php echo $id_personne; ?>" /></p>
    <p>
    dans laquelle la valeur rentré correspand à une variable et je souhaiterais remplacer la zone de texte par une liste déroulante qui sélectionne les champs ; Nom, prénom, centre, grade.... de la table news afin de remplir cette meme variable:
    j'avai pensé à ce code qui fonctionne mais il ne récupére pas la valeur sélectionné dans la liste déroulante pour la metre dans la variable $id_personne: (alors mais ou placé $id_personne ? )

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    <form>
       <select>
    <?
    $SQL = "SELECT * FROM news";
    $res = mysql_query($SQL);
    while($val=mysql_fetch_array($res)) {
       echo "<option>".$val["nom"]."</option>\n";
    }
    ?>
       </select>
    </form>

  2. #2
    LFC
    LFC est déconnecté
    Membre confirmé
    Profil pro
    Inscrit en
    Février 2003
    Messages
    106
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2003
    Messages : 106
    Par défaut
    Bonjour,

    ça t'affiche quoi quand tu regardes le code source de cette partie ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    echo "<option>".$val["nom"]."</option>\n";

  3. #3
    Membre éclairé
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2007
    Messages
    758
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Finance

    Informations forums :
    Inscription : Février 2007
    Messages : 758
    Par défaut
    et bien ça m'affiche les nom qui sont dans ma table news.

  4. #4
    LFC
    LFC est déconnecté
    Membre confirmé
    Profil pro
    Inscrit en
    Février 2003
    Messages
    106
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2003
    Messages : 106
    Par défaut
    J'ai un peu de mal à comprendre où se trouve ta liste déroulante...

    Ce que tu veux, c'est qu'il y ait, sur une page, une liste déroulante résultant de ta requête et en dessous un bouton "valider".

    En qu'en cliquant sur le bouton "valider", ça t'affiche "vous avez sélectionné Mr X Y ?

    C'est ça ou je suis à l'Ouest ??

    Sinon, postes le code source de toute ta page pour voir...

  5. #5
    Membre éclairé
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2007
    Messages
    758
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Finance

    Informations forums :
    Inscription : Février 2007
    Messages : 758
    Par défaut
    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
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
     <? include("haut.php");
     ?>
     
    <? $ane = $_GET['choix_annee'];
     
    ?>
     
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" >
       <head>
           <title>Rédiger une news</title>
            <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
            <style type="text/css">
            h3, form
            {
                text-align:center;
            }
     
            a img { 
      border-width : 0; 
    }
            </style>
        </head>
     
        <body>
    <h3><?php echo '</a><a href="liste_saisie.php?choix_annee=' . $ane . '">'; ?><img src="retour.png"></a></h3>
     
    <center><i><font face="Arial" color="#FFFFFF"><b>Saisisez un résultat pour l'année <? echo $_GET["choix_annee"];?></b></font></i>
    </center>
    <?php
    mysql_connect("localhost", "root", "");
    mysql_select_db("test");
    if (isset($_GET['modifier_news'])) // Si on demande de modifier une personne
    {
        // On protège la variable "modifier_news" pour éviter une faille SQL
        $_GET['modifier_news'] = mysql_real_escape_string(htmlspecialchars($_GET['modifier_news']));
        // On récupère les infos de la correspondante
        $retour = mysql_query('SELECT * FROM sport WHERE id=\'' . $_GET['modifier_news'] . '\'');
        $donnees = mysql_fetch_array($retour);
     
        // On place le centre et le matricule dans des variables simples
        $annee = stripslashes($donnees['annee']);
        $id_personne = stripslashes($donnees['id_personne']);
        $seance = stripslashes($donnees['seance']);
        $epreuve = stripslashes($donnees['epreuve']);
        $score = stripslashes($donnees['score']);
        $date = stripslashes($donnees['date']);
        $id_moniteur = stripslashes($donnees['id_moniteur']);
        $id_sport = $donnees['id']; // Cette variable va servir pour se souvenir que c'est une modification
    }
    else // C'est qu'on rentre une nouvelle personne
    {
        // Les variables $centre et $matricule sont vides, puisque c'est une nouvelle news
        $annee = '';
        $id_personne = '';
        $seance = '';
        $epreuve = '';
        $score = '';
        $date = '';
        $id_moniteur = '';
        $id_sport = 0; // La variable vaut 0, donc on se souviendra que ce n'est pas une modification
    }
    ?>
     
    <form action="liste_saisie.php?choix_annee=<? echo $ane; ?>" method="post"> 
    <p>
    <input type="hidden" size="30" name="annee" value="<?php echo $ane; ?>" /></p>
    </p>
    <p>Personne : <input type="text" size="30" name="id_personne" value="<?php echo $id_personne; ?>" /></p>
    <p>
     
     <select>
    <?
    $SQL = "SELECT * FROM news ORDER BY nom";
    $res = mysql_query($SQL);
    while($val=mysql_fetch_array($res)) {
       echo "<option>".($val["nom"]) .' '. ($val["prenom"])."</option>\n";
    }
    ?>
       </select>
     
    <p>Séance : <input type="text" size="30" name="seance" value="<?php echo $seance; ?>" /></p>
    <p>   
    <p>Epreuve : <input type="text" size="30" name="epreuve" value="<?php echo $epreuve; ?>" /></p>
    <p>   
    <p>Score : <input type="text" size="30" name="score" value="<?php echo $score; ?>" /></p>
    <p> 
    <p>Date : <input type="text" size="30" name="date" value="<?php echo $date; ?>" /></p>
    <p>
    <p>Moniteur : <input type="text" size="30" name="id_moniteur" value="<?php echo $id_moniteur; ?>" /></p>
    <p>
     
        <input type="hidden" name="id_sport" value="<?php echo $id_sport; ?>" />
        <input type="submit" value="Envoyer" />
    </p>
    </form>
    </body>
    </html>
    Voila ma page, en faite je veux que la valeur séléctionné dans ma liste déroulante soit stocké dans ($id_personne)

    comme on peut le voir avant, il s'agissait d'une (textbox) qui stocké le texte écrit par l'utilisateur dans ($id_personne).

    je sais pas évident à me faire comprendre ....

  6. #6
    LFC
    LFC est déconnecté
    Membre confirmé
    Profil pro
    Inscrit en
    Février 2003
    Messages
    106
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2003
    Messages : 106
    Par défaut
    Ok, alors déjà, ton formulaire est ok.
    Par contre, ta liste déroulante a pas de nom... Donc y'a rien qui passe...

    ajoutes donc un nom à ta liste déroulante pour voir...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    <select name="id_personne">
    <option>Mr X</opton>
    <option>Mme Y</option>
    </select>
    Et lorque tu valideras ton formulaire, tu auras dans $id_personne la valeur que tu auras choisie... A toi après de savoir la récupérer (via un $_GET['id_personne']

    Tiens nous au courant.

  7. #7
    Membre éclairé
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2007
    Messages
    758
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Finance

    Informations forums :
    Inscription : Février 2007
    Messages : 758
    Par défaut
    Ok ca marche TIP TOP merçi beaucoup pour ton aide, ca ma beaucoup avancé.

    mais juste un dernier petit soucis, lorsque je modifie une entrée (cf; le code de la page ci dessus, et bien la liste déroulante prend à chaque fois la premiére personne et nom celle affiché dans ma requéte)

    tu vois ce que je veux dire ?

  8. #8
    LFC
    LFC est déconnecté
    Membre confirmé
    Profil pro
    Inscrit en
    Février 2003
    Messages
    106
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2003
    Messages : 106
    Par défaut
    De rien, pour ton dernier problème, il faut que tu teste si la valeur actuelle du champ correspond à $id_personne...
    Et si tu veux sélectionner par défaut une entrée dans une liste déroulante, il faut que tu mettes <option selected> ou un truc dans le genre...

    Ce qui fait :
    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
     
    <select>
    <?
    $id_personne_selectionnee = $_GET['id_personne'];
     
    $SQL = "SELECT * FROM news ORDER BY nom";
    $res = mysql_query($SQL);
    while($val=mysql_fetch_array($res)) {
    if ($id_personne_selectionnee == "{ici tu mets selon ce que tu recuperes comme valeurs de ta requete...}")
    {
       echo "<option selected>".($val["nom"]) .' '. ($val["prenom"])."</option>\n";
    }
    else
    {
    echo "<option>".($val["nom"]) .' '. ($val["prenom"])."</option>\n";
    }
    }
    ?>
       </select>

  9. #9
    Membre éclairé
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2007
    Messages
    758
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Finance

    Informations forums :
    Inscription : Février 2007
    Messages : 758
    Par défaut
    il faudrait que je rajoute ceci dans la partie du code ou "modifier_news" à été séléctionner si j'ai bien compris donc ici :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    <?php
    mysql_connect("localhost", "root", "");
    mysql_select_db("test");
    if (isset($_GET['modifier_news'])) // Si on demande de modifier une personne
    {
        // On protège la variable "modifier_news" pour éviter une faille SQL
        $_GET['modifier_news'] = mysql_real_escape_string(htmlspecialchars($_GET['modifier_news']));
        // On récupère les infos de la correspondante
        $retour = mysql_query('SELECT * FROM sport WHERE id=\'' . $_GET['modifier_news'] . '\'');
        $donnees = mysql_fetch_array($retour);
     
        // On place le centre et le matricule dans des variables simples
        $annee = stripslashes($donnees['annee']);
        $id_personne = stripslashes($donnees['id_personne']);
    dois je remplacer donness et mettre select ?

Discussions similaires

  1. [MySQL] Liste déroulante et variable POST
    Par Aizen64 dans le forum PHP & Base de données
    Réponses: 4
    Dernier message: 11/10/2007, 11h51
  2. Liste déroulante à largeur variable
    Par Landolsi dans le forum Mise en page CSS
    Réponses: 13
    Dernier message: 12/07/2007, 17h39
  3. Liste déroulante et variables
    Par Mat67 dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 25/06/2007, 14h06
  4. [HTML]ouverture de liste déroulante vers la gauche
    Par sly33 dans le forum Balisage (X)HTML et validation W3C
    Réponses: 2
    Dernier message: 18/05/2006, 18h33
  5. Listes déroulantes pour variables dans un état
    Par Oluha dans le forum Access
    Réponses: 6
    Dernier message: 06/02/2006, 17h09

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