begin process at 2012 05 30 15:47:46
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Archive PHP

 > 

Archives

 > 

AU SECOURS !!!

 > 

Listes dynamiques.


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Listes dynamiques.

jeudi 22 juillet 2004 à 12:11:44 | Listes dynamiques.

Jouban

Bonjour à tous!

J'utilise des listes dynamiques avec utilisation d'une BD.
Le principe est la consultation de noms (présents dans la base) en fonction des départements et villes choisis.

Je m'explique:
j'ai une première liste remplie de départements dès le départ . Ensuite j'ai une seconde liste de villes qui se remplit en fonction du choix du département. Et enfin j'ai une troisième liste de noms qui se remplit en fonction du choix de la ville.
Quand aucun département n'est saisi, un message d'alerte s'affiche. Quand il n'y aucune ville pour le département choisi, les listes de villes et de noms restent à vide (normal). Quand j'ai choisi une ville et un nom, et que j'effectue une nouvelle recherche avec un nouveau département, les listes de villes et de noms se vident.
Pour ça, ça marche bien.
Le problème que je rencontre, c'est que ça marche quand j'ai en résultat une liste de villes avec une ville, mais dès que j'en ai plusieurs (j'ai essayé avec 2), la liste des noms reste à vide, alors que les villes existent.
Le problème doit venir de la boucle suivante:

*******
while($tab2=mysql_fetch_row($res2)) {
echo "<option";
// Si la variable 'ville' existe, on met le 'selected' dessus
if($ville==$tab2[0]) { echo " selected"; }
else { $ville=NULL; }
echo ">".$tab2[0]."</option>";
}
*******
En effet, les villes trouvées suites à la requête s'affichent bien dans la liste des villes, mais dès que je clique sur la première, elle reste affichée (rôle du 'selected'), mais aucun nom ne s'affiche alors qu'ils sont présents dans la base, et si je choisis la deuxième, elle ne reste pas affichée et aucun nom apparaît. C'est comme si on passait dans la boucle 'else { $ville=NULL; }'.

Je vous transmets le code (si ça intéresse certains):

*******
<?
// Connexion à la base de données et aux tables
include("Connexion.php");

// Vérification de l?existence de la variable et déclaration
// Et récupération de sa valeur
$departement=(isset($_POST['departement']) ) ? $_POST['departement'] : Null;
$ville=(isset($_POST['ville']) ) ? $_POST['ville'] : Null;
$patronyme=(isset($_POST['patronyme']) ) ? $_POST['patronyme'] : Null;

$req="SELECT * FROM Departements ORDER BY Departement";
// Interprétation de la requête, et permet d'afficher l'erreur MySQL s'il y en a une
$res=mysql_query($req) or die ('Erreur : '.mysql_error());
?>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<title>Untitled Document</title>
</head>

<body>
<form method="post" action="">
<!--Liste des départements-->
<select name="departement" onChange="submit()">
<option selected value=00>Sélectionnez un département</option>
<?
while($tab=mysql_fetch_row($res)) {
echo "<option value=".$tab[0]."";
// Si la variable 'departement' existe, on met le 'selected' dessus
if($departement==$tab[0]) { echo " selected"; }
echo ">".$tab[1]."</option>";
}
?>
</select>
<br><br>
<!--Liste des villes-->
<select name="ville" onChange="submit()">
<?
if($departement) {
$req2="SELECT DISTINCT Ville FROM Archives WHERE Num_dept='$departement' ORDER BY Ville";
$res2=mysql_query($req2) or die ('Erreur : '.mysql_error());
$nb_enr2=mysql_num_rows($res2);
if($nb_enr2!=0) {
echo "<option>Sélectionnez une ville</option>";
while($tab2=mysql_fetch_row($res2)) {
echo "<option";
// Si la variable 'ville' existe, on met le 'selected' dessus
if($ville==$tab2[0]) { echo " selected"; }
else { $ville=NULL; }
echo ">".$tab2[0]."</option>";
}
}
else {
$ville=NULL;
}
}
else {
echo "<option></option>";
}
?>
</select>
</form>

<form method="post" action="Structure_deptville.php">
<?
echo "<input type='hidden' name='departement' value='".$departement."'>";
echo "<input type='hidden' name='ville' value='".$ville."'>";
?>

<!--Liste des patronymes-->
<select name="patronyme">
<?
if($ville) {
$req3="SELECT DISTINCT Nom FROM Archives WHERE Ville='".$ville."' ORDER BY Nom"; $res3=mysql_query($req3) or die ('Erreur : '.mysql_error());
$nb_enr3=mysql_num_rows($res3);
if($nb_enr3!=0) {
echo "<option>Sélectionnez un patronyme</option>";
while($tab3=mysql_fetch_row($res3)) {
echo "<option";
// Si la variable 'patronyme' existe, on met le 'selected' dessus
if($patronyme==$tab3[0]) { echo " selected"; }
echo ">".$tab3[0]."</option>";
}
}
else {
$patronyme=NULL;
}
}
else {
echo "<option></option>";
}
?>
</select>
<input type="submit" value="OK">
</form>
</body>
</html>
*******

Si qqun peut m'aider... car je ne vois plus très bien quoi faire!
J'ai essayé d'être le plus clair possible, mais s'il y a besoin de renseignements complémentaires, n'hésitez pas!

Jouban
jeudi 22 juillet 2004 à 12:39:38 | Re : Listes dynamiques.

WhiteDwarf

Membre Club
je crois que ce code peu t'aider (c'est du javascript) :
http://www.javascriptfr.com/code.aspx?ID=16149

et je pense qu'il vaut mieu dans tu cas utiliser le javascript plûtot que le php... et a ce moment la je te recommande ce site :
http://www.editeurjavascript.com/
----------------------
La lumière étant plus rapide que le son, un homme peu paraître brillant avant qu'il se mette a parler
[Laxis]WhiteDwarf
----------------------
jeudi 22 juillet 2004 à 16:08:02 | Re : Listes dynamiques.

Jouban

OK, je regarde ça.

Jouban


Cette discussion est classée dans : liste, echo, listes, ville, villes


Répondre à ce message

Sujets en rapport avec ce message

double menu déroulant [ par jycks ] bonjours, voilà j'ai un menu déroulant qui affiche des villes et je voudrais que quand je clique sur un ville cela m'affiche dans une deuxième liste l synchronisation entre deux listes [ par xB2x ] Salut ... J'ai deux balises que je peuple à partir de la base de données .l'une contient la liste des pays ... et l'autres les villes ...ce que je ve Lier deux listes déroulantes mise à jour par BD [ par palpelune ] Bonjour,j'ai une page avec une liste déroulante qui est mise à jour par une base. Je voudrais pouvoir affiner les choix avec une deuxieme liste deroul ouverture popup lors de changemt ds 1 liste deroulante [ par atomik29 ] >Bonjour a tous,alors voila mon probleme :Je recupere a partir d'une fonction des champs d'une table dans une liste deroulante de mon formulairevoila liste deroulante qui en genere une autre [ par Sandy084 ] Bonsoir à tous! Je souhaiterais savoir comment remplir une liste déroulante à partir d'une autre. Par exemple quand je choisi un niveau de difficult Probleme de récupération des paramètres sélectionnés d'une liste déroulante [ par bebebebebebe ] Voila j'ai un petit problème qui commence sévèrement à m'énerver, je vous l'explique. Le pb: J'ai une liste déroulante qui récupère à l'aide d'une req Ouverture popup quand selection d'une valeur fixe dans une liste deroulante [ par atomik29 ] Bonjour a tousvoila mon problemeJ'ai une popup dans laquelle j'affiche des valeurs dans une liste deroulante a partir d'une fonction.Appel de la fonct Liste formulaire [ par nightmareofworld ] Bonjour a tousJe vous explique ce que je veut faireVoila j'ai une liste dans un formulaire :echo "";    echo "";<br recupere variable apres selection dans liste deroulante d'une popup [ par atomik29 ] Bonjour a tousJ'ai un probleme pour recuperer une variable dans une popupJ'ai une 1ere popup avec un formulaire ou se trouve une liste deroulante Pour actualise une variable lors de changement dans une liste deroulante [ par atomik29 ] Bonjour a tousVoila mon probleme :J'ai un formulaire dans une popup avec une liste deroulante(pour selectionner une personne)Pour remplir la liste je


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

Photothèque

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,343 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales