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 :

listes déroulantes et dépendantes en php


Sujet :

PHP & Base de données

  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    15
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 15
    Par défaut listes déroulantes et dépendantes en php
    Bonjour j'aimerai savoir comment peut-on lier 2 listes déroulantes entre elles?

    Je sais remplir la première avec une connexion à une base de données comme ceci:

    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
    #$db = NewADOConnection("oci8"); 
     
       $cstr = "(DESCRIPTION=(ADDRESS=(PROTOCOL=$PROTOCOL)(HOST=$HOST)(PORT=$PORT))(CONNECT_DATA=(SID=$SID)))"; 
       $db->Connect($cstr, $USER, $PWD); 
     
    echo '<form method="POST" action="recherche.php">';    
     
    $req="SELECT * FROM pays  ORDER BY idpays";    
    $res=$db->Execute($req); 
     
    echo "<tr>"; 
    echo "<td>"; 
    echo "Veuillez s&eacutelectionner le pays concern&eacute :"; 
     
    echo "<select name = 'Pays' size ='1'>"; 
     
    while ($data=$res->FetchRow()) 
    { 
    echo "<option> ".$data['HEADING']." </OPTION>"; 
    } 
    echo "</select>"; 
    echo "</td>"; 
    echo "</tr>";# 
     
    Mais j'aimerai bien pouvoir sélectionner une ville dans une 2ème liste déroulante nourrie grâce à la sélection d'un pays: 
     
    #//if (isset($_POST["Pays"])) 
       //{ 
       //$Pays = $_POST["Pays "]; 
       // $db->Execute("SELECT nom_ville FROM villes WHERE pays.idpays='$Pays" ); 
       //echo "<option>< ".$data['idvilles']." </OPTION>"; 
       //} 
     
    $req2="SELECT * FROM villes  ORDER BY idville";    
    $res2=$db->Execute($req2); 
     
    echo "<tr>"; 
    echo "<td>"; 
    echo "Veuillez s&eacutelectionner la ville concern&eacutee :"; 
    echo "<select name = 'Ville' size ='1'>"; 
     
    while ($data2=$res2->FetchRow()) 
    { 
    echo "<option> ".$data2['nom_ville']." </OPTION>"; 
    } 
     
    echo "</select>"; 
    echo "</td>";
    Merci d'avance...

    PS: une fois que j'aurai trouvé comment faire, tout ira pour le mieux

    BBK91

  2. #2
    Membre Expert
    Inscrit en
    Janvier 2005
    Messages
    2 291
    Détails du profil
    Informations forums :
    Inscription : Janvier 2005
    Messages : 2 291
    Par défaut
    Ce problème a déjà été traité de nombreuses fois dans le forum (cherche avec liste déroulante liée par exemple).

    Il y a plusieurs solutions :
    1/ En php => pour remplir la deuxieme liste, il faut valider le formuler (le soumettre donc) et créer ensuite les deux listes (en sélectionnant dans la premiere ce que l'utilisateur avait deja choisi)

    2/ En ajax, tu n'as pas besoin de recharger TOUTE la page mais dans ce cas il faudra te pencher du coté du forum Ajax!

    Bon courage

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    15
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 15
    Par défaut
    Merci de ta réponse

    en effet, je souhaiterais le faire en php!

    On m'avait déjà un peu orienté vers cette solution mais je t'avourai que je ne sais pas trop comment nourrir la deuxième liste déroulante par une sélection d'un élément de la première liste....

  4. #4
    Membre Expert
    Inscrit en
    Janvier 2005
    Messages
    2 291
    Détails du profil
    Informations forums :
    Inscription : Janvier 2005
    Messages : 2 291
    Par défaut
    Dans ton script PHP tu vas récupérer la valeur de la premiere liste et aller chercher dans ta base de données toutes les villes du département qui a été choisi, tu rempliras alors la seconde liste.

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    15
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 15
    Par défaut
    est ce que ceci marcherait?

    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
    $db = NewADOConnection("oci8"); 
     
       $cstr = "(DESCRIPTION=(ADDRESS=(PROTOCOL=$PROTOCOL)(HOST=$HOST)(PORT=$PORT))(CONNECT_DATA=(SID=$SID)))"; 
       $db->Connect($cstr, $USER, $PWD); 
     
    echo '<form method="POST" action="recherche.php">';    
     
    $req="SELECT * FROM pays  ORDER BY idpays";    
    $res=$db->Execute($req); 
     
    echo "<tr>"; 
    echo "<td>"; 
    echo "Veuillez s&eacutelectionner le pays concern&eacute :"; 
     
    echo "<select name = 'Pays' size ='1'>"; 
    echo"<INPUT TYPE=HIDDEN NAME="id" VALUE=".$data['idpays'].">\n"; 
     
    while ($data=$res->FetchRow()) 
    { 
    echo "<option> ".$data['nom_pays']." </OPTION>"; 
    } 
    echo "</select>"; 
    echo "</td>"; 
    echo "</tr>";# 
     
    if (isset($_POST["Pays"])) 
      { 
      $Pays = $_POST["Pays "]; 
      $db->Execute("SELECT nom_ville FROM villes WHERE villes.idpays='.$data['idpays']." );  
       } 
     
    $req2="SELECT * FROM villes  ORDER BY idville";    
    $res2=$db->Execute($req2); 
     
    echo "<tr>"; 
    echo "<td>"; 
    echo "Veuillez s&eacutelectionner la ville concern&eacutee :"; 
    echo "<select name = 'Ville' size ='1'>"; 
     
    while ($data2=$res2->FetchRow()) 
    { 
    echo "<option> ".$data2['nom_ville']." </OPTION>"; 
    } 
     
    echo "</select>"; 
    echo "</td>";
    Merci

Discussions similaires

  1. [XL-2003] Liste déroulante conditionnelle dépendante d'une première liste
    Par CRIS2010 dans le forum Excel
    Réponses: 7
    Dernier message: 23/04/2019, 17h26
  2. Liste déroulante à remplir via variables PHP
    Par GoodWear dans le forum Langage
    Réponses: 6
    Dernier message: 14/10/2009, 16h26
  3. [MySQL] récupérer l'item selctionné d'une liste déroulante dans une variable php
    Par car0line dans le forum PHP & Base de données
    Réponses: 10
    Dernier message: 22/04/2009, 14h30
  4. liste déroulante dinamique en solution php
    Par HwRZxLc4 dans le forum Langage
    Réponses: 1
    Dernier message: 09/09/2006, 16h44

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