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 :

Fixer une valeur d'une liste déroulante


Sujet :

PHP & Base de données

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé

    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    289
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 289
    Par défaut Fixer une valeur d'une liste déroulante
    Bonsoir tout le monde,

    J'ai crée une page .php affichant une liste déroulante de pays (j'en ai 4 en tout) via du code mysql, lorsque que l'utilisateur clique sur le bouton Suivant, les noms les villes correspondant au pays s'affichent. Mais lorsqu'il m'affiche ces pays, la liste déroulante des pays affiche l'identifiant du pays et plus son nom.

    Pour plus de précision, j'ai 2 tables : pays et loca.

    pays a 2 champs : id_pays & nom_pays
    loca a 3 champs : id_ville, id_pays & nom_ville

    voici le code que j'utilise :

    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
    <!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>
    
    <form method="post" action="http://127.0.0.1/HRA/new 5.php">
    
    <?php
    
    "set names 'UTF8'";
    
    include('presentation_2.php');
    include('connexion.php');
    
    $sql_1 = "SELECT * FROM pays";
    
    $resultat_1 = mysql_query($sql_1);
    
    $nom_des_pays = "<p align=center><select name='menu1'></p>\n";
    
    while ($row = mysql_fetch_array($resultat_1) ) {
    
    $nom_des_pays .= "<option value='" . $row['id_pays'] . "'>" . $row['nom_pays'] . "</option>\n";
    
    }
    echo $nom_des_pays;
    
    
    
         for($i = 1; $i < 5; $i++)
          {
            $selected = (isset(
    $_POST['menu1']) and $_POST['menu1'] == $i)? 'selected="selected"':'';
            echo '<option value="'.$i.'" '.$selected.'>'.$i.'</option>'
    ;
       }
    	  
    ?>
    </select>
    </p><p align="center"><input type="submit" value="Suivant"><hr>
    
    <?php
    
    $sql_2 = "select * from loca where id_pays= ".$_POST['menu1']."";
    
    $resultat_2 = mysql_query($sql_2);
    
    $nom_des_villes = "<p align=center><select name='menu3'></p>\n";
    
    while ($row = mysql_fetch_array($resultat_2) ) {
    
    $nom_des_villes .= "<option value='" . $row['id_ville'] . "'>" . $row['nom_ville'] . "</option>\n";
    
    }
    
    echo $$nom_des_villes ;
    
    ?>
    
    
    </form>
    </body>
    </html>
    Je sais que j'y suis presque mais sérieux je n'arrive pas à trouver la solution, merci de votre aide.

    ash_rmy

  2. #2
    Expert confirmé
    Avatar de N1bus
    Homme Profil pro
    Dev. Web & OpenERP
    Inscrit en
    Janvier 2003
    Messages
    2 827
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Dev. Web & OpenERP
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Janvier 2003
    Messages : 2 827
    Par défaut
    Bonjour,

    Déjà faudrait prendre l'habitude de ne jamais mettre des noms de fichiers avec des espaces, accents etc..
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <form method="post" action="http://127.0.0.1/HRA/new 5.php">
    Le plus sûr : tout en minuscule + sans accent + tiret (-) ou underscore (_)= c'est compatible avec n'importe quel systeme.

    ensuite tu affiches :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    echo '<option value="'.$i.'" '.$selected.'>'.$i.'</option>'
    C'est donc normal qu'il y ait le numéro ($i)

  3. #3
    Membre Expert

    Profil pro
    Inscrit en
    Octobre 2002
    Messages
    1 138
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Octobre 2002
    Messages : 1 138
    Par défaut
    La valeur de ton select est représenté par l'attribut value des balises options.
    Donc comme l'a dit n1bus, il te faut mettre en value le nom de ton pays. Ou alors tu gardes l'identifiant en value et apres dans le traitement, tu refais une requete pour récupérer le nom du pays en fonction de l'id (mais ca te fait une requete de plus).

  4. #4
    Membre éclairé

    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    289
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 289
    Par défaut
    Bonjour tout le monde, je vous remercie pour votre aide. Cependant, je suis encore en galère...

    En fait, j'essaie de fixer la valeur selectionnée par l'utilisateur mais aussi de l'affecter à une variable.

    Donc j'utilise
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <p align="center"><input type="submit" value="Suivant"><hr>
    pour la "fixation".

    Et,
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <p align="center"><input type="buton" value="Suivant"><hr>
    pour l'"affection".

    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
    <!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>
    <?php 
    echo "dzdez";
    ?>
    <form method="post" action="">
     
    <p align=center>
    <select name='menu1'></p>
     
    <option value='Inde'>Inde</option>
    <option value='Pakistan'>Pakistan</option>
    <option value='Bangladesh'>Bangladesh</option>
     
    </select>
    <p align="center"><input type="buton" value="Suivant"><hr>
    <p align="center"><input type="submit" value="Suivant"><hr>
    </form>
    <?php
    c'est super bizzare, je comprend plus rien, merci de m'éclairer car je coule.

    ash_rmy.

  5. #5
    Expert confirmé
    Avatar de N1bus
    Homme Profil pro
    Dev. Web & OpenERP
    Inscrit en
    Janvier 2003
    Messages
    2 827
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Dev. Web & OpenERP
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Janvier 2003
    Messages : 2 827
    Par défaut
    c'est super bizzare, je comprend plus rien, merci de m'éclairer car je coule.

    Ben je n'ai pas vraiment compris non plus ce que tu souhaites faire.

  6. #6
    Membre éclairé

    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    289
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 289
    Par défaut
    Salut N1bus, c'est vrai que ce que j'ai demandé est assez confus.

    Je reprend. J'ai fait une capture d'écran du site pour que vous voyez exactement là où est mon problème.

    J'ai une liste déroulante de pays et un bouton Suivant qui permet d'avoir la liste des pays en fonction du pays sélectionné. [voir capture d'écran svp].



    Mais le 1 er problème c'est qu'à l'affichage de mes noms de villes, la liste déroulante des pays se remet au premier pays - > donc je dois le fixer.

    Le second problème, c'est que lorsque je clique sur Envoyer, il me met les noms des villes au même pays.

    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
    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
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    <!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>
     
    <form method="post" action="page.php">
     
    <?php
     
    "set names 'UTF8'";
     
    include('presentation.php');
    include('connexion.php');
     
    $sql_1 = "SELECT * FROM pays";
     
    $resultat_1 = mysql_query($sql_1);
     
    $nom_des_pays = "<p align=center><select name='menu1'></p>\n";
     
    while ($row = mysql_fetch_array($resultat_1) ) {
     
    $nom_des_pays .= "<option value='" . $row['id_pays'] . "'>" . $row['nom_pays'] . "</option>\n";
     
    }
    echo $nom_des_pays;
     
    ?>
     
    </p><p align="center"><input type="submit" value="Suivant"><hr>
     
    <?php
     
    $sql_2 = "select * from loca where id_pays= ".$_POST['menu1']."";
     
    $resultat_2 = mysql_query($sql_2);
     
    $nom_des_villes = "<p align=center><select name='menu3'></p>\n";
     
    while ($row = mysql_fetch_array($resultat_2) ) {
     
    $nom_des_villes .= "<option value='" . $row['id_ville'] . "'>" . $row['nom_ville'] . "</option>\n";
     
    }
     
    ?>
     
    <p align="center">Date des évévements :<textarea name="date_des_faits" rows="1" cols="35"></textarea> <br /></p>
    <hr>
     
    <?php
     
    $sql_3 = "SELECT * FROM journal";
     
    $resultat_3 = mysql_query($sql_3);
     
    $nom_des_journeaux = "<p align=center><select name='menu2'></p>\n";
     
    while ($row = mysql_fetch_array($resultat_3) ) {
     
    $nom_des_journeaux .= "<option value='" . $row['id_journal'] . "'>" . $row['nom_journal'] . "</option>\n";
     
    }
     
    echo $nom_des_journeaux;
     
    echo $nom_des_villes;
    ?>
     
    <div align="center">
     
    <input type="button" value="Ajouter des noms de journaux"
    onClick='alert("Envoyez moi un mail à Human.Rights.in.Asia@gmail.com")'>
     
    </div>
     
    <hr>
    <p align="center">Résumé de l'article :<textarea name="resume" rows="10" cols="87"></textarea></p><hr>
     
    <p align="center">Nom du journaliste :<textarea name="nom_du_journaliste" rows="1" cols="35"></textarea></p><hr>
     
    <div align="center">
     
     
    <?php
     
    //$nom_du_journaliste = $_POST['nom_du_journaliste'];
    // $nom_du_journaliste = htmlentities($_POST['nom_du_journaliste'], ENT_QUOTES);
     
    $date_des_faits = htmlentities($_POST['date_des_faits'], ENT_QUOTES);  
     
    $resume = htmlentities($_POST['resume'], ENT_QUOTES);
     
    $resume = nl2br($resume); 
     
    mysql_query("INSERT INTO article VALUES('', '" .$_POST['menu2']. "', '" .$_POST['menu1']. "','" .$_POST['menu3']. "', '".$resume."', '" .$_POST['nom_du_journaliste']. "','" .$date_des_faits. "')");
     
     
    ?>
     
    </p><p align="center"><input type="submit" value="Envoyer" />
     
    <?php
    echo "<p align=center>Human.Rights@gmail.com</p>";
    mysql_close();
    ?>
     
    </form>
    </body>
    </html>
    Merci beaucoup de votre aide,
    ash_rmy

Discussions similaires

  1. Réponses: 1
    Dernier message: 13/04/2015, 11h17
  2. Réponses: 3
    Dernier message: 12/11/2010, 23h14
  3. Sélectionner une valeur de la liste déroulante
    Par jacadi87 dans le forum Langage
    Réponses: 22
    Dernier message: 12/01/2010, 16h19
  4. Réponses: 7
    Dernier message: 27/05/2008, 13h59
  5. Recherche une valeur d'une cellule dans une colonne d'une autre feuille
    Par kourria dans le forum Macros et VBA Excel
    Réponses: 8
    Dernier message: 21/06/2007, 13h48

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