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 actif
    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
    Points : 279
    Points
    279
    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 régulier
    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
    Points : 70
    Points
    70
    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 actif
    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
    Points : 279
    Points
    279
    Par défaut
    et bien ça m'affiche les nom qui sont dans ma table news.

  4. #4
    LFC
    LFC est déconnecté
    Membre régulier
    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
    Points : 70
    Points
    70
    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 actif
    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
    Points : 279
    Points
    279
    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 régulier
    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
    Points : 70
    Points
    70
    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 actif
    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
    Points : 279
    Points
    279
    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 régulier
    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
    Points : 70
    Points
    70
    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 actif
    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
    Points : 279
    Points
    279
    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, 10h51
  2. Liste déroulante à largeur variable
    Par Landolsi dans le forum Mise en page CSS
    Réponses: 13
    Dernier message: 12/07/2007, 16h39
  3. Liste déroulante et variables
    Par Mat67 dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 25/06/2007, 13h06
  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, 17h33
  5. Listes déroulantes pour variables dans un état
    Par Oluha dans le forum Access
    Réponses: 6
    Dernier message: 06/02/2006, 16h09

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