Liste deroulantes liées entre elles avec sql

Signaler
Messages postés
1
Date d'inscription
dimanche 3 août 2003
Statut
Membre
Dernière intervention
3 août 2003
-
cs_hantouva
Messages postés
15
Date d'inscription
vendredi 10 décembre 2010
Statut
Membre
Dernière intervention
19 mars 2012
-
slt,
j'ai une table sql avec les champs suivant, region, departement, code postal et ville
je voudrais placer 3 liste deroulante dans une page, dans la premiere pour y afficher
les regions, dans la deuxième liste les departement en fonction de la selection faite dans la premiere liste ( region ).
et pour finir, afficher dans la troisieme liste les villes en fonction de la selection faite dans la liste deroulante ou sont placé les departements
voici donc mon problème, j'ai beau chercher, je ne trouve pas comment faire

merci d'avance

10 réponses

Messages postés
1123
Date d'inscription
lundi 7 janvier 2002
Statut
Membre
Dernière intervention
26 juin 2008
1
Salut

<select name="menu1">
<?
while ($ligne=mysql_fetch_object($requete))
{
?>
<option value=<? echo $ligne->region; ?>><? echo $ligne->nom_region; ?></option>
<?
}
?>
</select>

et pareil pour les autres

++

------
Je cherche un poste de developpeur PHP mysql, si vous avez une proposition ou si vous voulez mon CV ==> [mailto:tortue.geniale@laposte.net mailto:tortue.geniale@laposte.net]

=> http://www.kame-house.org La plus grosse base de données de DA du net
Messages postés
453
Date d'inscription
dimanche 9 février 2003
Statut
Membre
Dernière intervention
9 juillet 2004
1
faudra aussi utiliser JavaScript pour changer la valeur des autres listes en fonction de leur liste "parente".

Houzéf@ - www.123toto.com
Messages postés
9
Date d'inscription
mardi 30 mars 2004
Statut
Membre
Dernière intervention
17 avril 2006

Salut, je ne suis pas progarmmeur, et je suis intérressé par la même chose, c'est à dire que j'ai une BDD sql, je désire créer 3 listes déroulantes dépendantes les unes des autres :
ex : Marques -> Modèles -> Motorisation
ex : Renault -> mégane, kangoo, etc... -> 1.4l, 2.0, etc ...

en fait la seconde liste doit dépendre du choix de la premiere et la 3eme du choix de la seconde ....le tout à partir d'une bdd mysql.

Si je repose la question, c'est que je n'ai pas compris comment mettre en oeuvre vos explications, si vous pouviez etre plus précis .....çà serait cool merci ....

JP
Messages postés
9
Date d'inscription
mardi 30 mars 2004
Statut
Membre
Dernière intervention
17 avril 2006

Salut, je ne suis pas progarmmeur, et je suis intérressé par la même chose, c'est à dire que j'ai une BDD sql, je désire créer 3 listes déroulantes dépendantes les unes des autres :
ex : Marques -> Modèles -> Motorisation
ex : Renault -> mégane, kangoo, etc... -> 1.4l, 2.0, etc ...

en fait la seconde liste doit dépendre du choix de la premiere et la 3eme du choix de la seconde ....le tout à partir d'une bdd mysql.

Si je repose la question, c'est que je n'ai pas compris comment mettre en oeuvre vos explications, si vous pouviez etre plus précis .....çà serait cool merci ....

JP
Messages postés
10
Date d'inscription
lundi 22 avril 2002
Statut
Membre
Dernière intervention
6 juin 2006

Bonjour,

Avez-vous eu une réponse à votre question car je rencontre le même problème ?

Merci

Charlie
Messages postés
2
Date d'inscription
lundi 23 décembre 2002
Statut
Membre
Dernière intervention
13 septembre 2009

bonjour, je debute en Php et je me suis resservi de votre exemple. j'ai
créé une table geographie dans une base essai avec les champs
region departement code_postal et ville.

J'ai ecrit ce code :

<?

$connexion=mysql_connect("localhost","root","");

$db=mysql_select_db("essai",$connexion);

$requete="select region from geographie"

?>

<select name="menu1">

<?

while ($ligne=mysql_fetch_object($requete))

{

?>

<option value=<? echo $ligne->region; ?>><? echo $ligne->nom_region; ?></option>

<?

}

?>

</select>



</html>
________________________________________

et voila ce que j'obtiens dans mon navigateur :

<select name="menu1">
<option value="<?" selected="selected" $ligne="" echo="">region;
?>>nom_region; ?></option>
</select>

_____________________________________________

Quelle erreur ai-je faite ? Merci de me secourir. Bonne soirée à ceux qui savent..

Alain
Messages postés
20
Date d'inscription
mardi 19 avril 2005
Statut
Membre
Dernière intervention
10 mai 2005

excuseez jé le m^me probléme que vous si vous aez trouver la réponse n'hésiter pas merci d'avance
Messages postés
42
Date d'inscription
jeudi 21 novembre 2002
Statut
Membre
Dernière intervention
2 juin 2006

Bon apparament personne ne comprend la question initiale qui etait de remplir une combo ( liste deroulante )par rapport a une autre liste. Vous trouverez ci joint un bout de mon code qui je l'espere vous aidera.
Bon je commente un peu histoire de pas copier sans comprendre.
Déja je fais tout en objet mais n'en tenez pas compte utiliser votre code classique ( pour le foreach ....)
donc au chargement de la page j'ai une combo qui est rempli, sur l'evenement Onchange petit script javascript qui me relance la page ( avec $_GET) je recupere la valeur de la premiere liste. ensuite je fais ma requete qui chargera l'autre liste
Si c pas clair demandez moi

<select name='listThemeModifArt' onchange="JavaScript:document.ModifThemeArticle.submit();">
<option></option>
<?php
foreach(dao_theme::getAll() as $ligne)
{
$theme = dao_theme::loadById($ligne['id_theme']);
?>
<Option value="<?php echo $theme->id_theme;?>"><?php echo $theme->lib_theme;?>

</Option>
<?php }
?>
</select>
<td>

?>
<select name='ListSousThemeToModifArt'>
<option></option>
<?php

if (!empty($_GET['listThemeModifArt']))
{
foreach(dao_sous_theme::loadByTheme($_GET['listThemeModifArt']) as $ligne)
{
$theme = dao_sous_theme::loadById($ligne['id_sous_theme']);
?>
<Option value="<?php echo $theme->id_sous_theme ;?>"><?php echo $theme->lib_sous_theme;?>

</Option>
<?php }
} ?>
</select>

pépé
Messages postés
14
Date d'inscription
lundi 28 mars 2005
Statut
Membre
Dernière intervention
4 juillet 2011

Bonjour tout le monde,

Je cherche la même chose que tous les autres, mais sans recharger la page... Donc, pas de GET :(
Pépé, si tu as une idée je suis preneur.
Je m'y connais bien en PHP et en SQL, mais je sèche lamentablement :(


:) Phil

---------------------
Et si avant de poster, vous regardiez votre orthographe, ce serait plus simple à relire
Messages postés
15
Date d'inscription
vendredi 10 décembre 2010
Statut
Membre
Dernière intervention
19 mars 2012

bonjour
j'utilise une base de donnees sql server et php pour developper mon site web et la je bloque au niveau du formulaire ou je veux utiliser 2 listes deroulantes liees entre elles et ou les valeurs sont recuperer a partir de ma base de donnees le pb qui se pose avec mon code cest que la premiere liste des wilaya se charge parfaitement par contre la seconde qui est doit afficher les communes reste vide voici mon code si qq a une idee ou un autre code a me proposer ca serait tres sympa car ca fait un bon moment que je suis bloquee a ce niveau merci beaucoup
voici mon code avec java script
<?php

require_once('conn.php');

?>
<html>
<head>
<title>Document sans titre</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<script language="JavaScript" type="text/javascript">
List = new Array();
function Remplir(valeur){
var sel="";
sel ="<select size='1' name='souscat'>";
// Parcourir le tableau
for (var i=0;i<List.length;i++)
{
// tester si la ligne du tableau (Sous-catégorie) correspond à la valeur de la catéhorie
if (List[i][1]==valeur)
{
// Ajouter une rubrique sous-catégorie au variable SEL
sel= sel + "<option value="+List[i][0]+">"+List[i][2]+"</option>";
}

}
sel =sel + "</select>";
// Modifier le DIV scat par la nouvelle List à partir du variable SEL
document.getElementById('scat').innerHTML=sel;
}

</script>

</head>


<tr> <td>
<select size="1" name="cat" dir="ltr" OnChange="Remplir(cat.value)">

<?php
// Paramètres de la Connexion à la base MYSQL

$i=0; // variable de test
$j=0; // variable pour garder la valeur du premier enregistrement catégorie pour l'affichage


// Séléction de tous les enregistrements de la table Catégorie
$query=odbc_exec ($sqlconnect,"SELECT * FROM wilaya order by id_wilaya");

while(odbc_fetch_into($query,$row))
{

// Remplir la liste déroulante des catégorie
echo "\t\t<option value=".($row[0]).">".($row[1])."</option>";
if ($i==0) { $j=$row[0]; $i=1; } // garder la valeur du premier enregistrement
}

// Séléction de tous les enregistrements de la table Sous-Catégorie
$query=odbc_exec ($sqlconnect,"SELECT * FROM commune order by id_wilaya");

while(odbc_fetch_into($query,$row))
{
// $i = initialise le variable i
$i=0;
while (odbc_fetch_row($query))
{
// Remplir le tableau (array) en javascript
// ex : List[1]=new Array (1,1,"Sous-catégorie 1");
// ex : List[2]=new Array (2,1,"Sous-catégorie 2");
echo "<script>List[".$i."] = new Array(".($row[0]).",".($row[1]).",'".($row[2])."');</script>";
$i=$i+1; // Incrémentation de $i
}
echo "<script>Remplir ($j); </script>"; // Remplir la deuxième liste de choix avec les données
} // des sous-catégories en utilisant la valeur j
?>
</select>
</td></tr>
<tr>
<td width="">


<select size="1" name="souscat" dir="ltr">
</select>


</td></tr>

</html>

je nest aucune erreur a part que la 2eme liste saffiche vide
ma table wilaya contient 2 champs wilayalib et id_wilaya
la table commune contient 3 champs id_com,id_wilaya,comlib
merci a vous