begin process at 2012 05 31 03:07:02
  Trouver un code source :
 
dans
 
Accueil > Forum > 

PHP

 > 

Web 2.0

 > 

Autre

 > 

lié 3 liste deroulante


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

lié 3 liste deroulante

mercredi 26 janvier 2011 à 14:48:29 | lié 3 liste deroulante

cdg41

Bonjour,

Voici mon code pour relier 3 listes déroulantes(region-departement-ville)
Petit problème au niveau de la liste déroulante(ville)
Elle ne s'enclenche pas comme celle de departement, les villes ne sont pas les bonnes et quand on clic sur une region et sur un departement, les villes restent les mêmes pour chaque departement.
Pouvez-vous m'aider?

Mon fichier index.php:

<?php
echo("<?xml version=\"1.0\" encoding=\"iso-8859-1\"?>\n");
/* Variables de connexion : ajustez ces paramètres selon votre propre environnement */
$serveur = "localhost";
$admin = "root";
$mdp = "";
$base = "db_ISFEC";
/* On récupère si elle existe la valeur de la région envoyée par le formulaire */
$idr = isset($_POST['region'])?$_POST['region']:null;
$ide = isset($_POST['departement'])?$_POST['departement']:null;
?>

<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" xml:lang="fr" />
<title>Sélectionner un département selon la région choisie</title>
<meta name="description" content="Listes déroulantes dynamiques inter-dépendantes" />
<meta name="keywords" content="" />
<meta name="author" content="Cyrano" />
<meta name="generator" content="Zend Studio Environnement et WebExpert 5" />
<meta http-equiv="imagetoolbar" content="no" />
<meta http-equiv="Pragma" content="no-cache" />
</head>
<body style="font-family: verdana, helvetica, sans-serif; font-size: 85%">

<?php
if(isset($_POST['ok']) && isset($_POST['departement']) && $_POST['departement'] != "" && isset($_POST['ville']) && $_POST['ville'] != "")
{
$region_selectionnee = $_POST['region'];
$dept_selectionne = $_POST['departement'];
$ville_selectionne=$_POST['ville'];
?>
Code POSTAL:<?php echo $ville_selectionne; ?>
<?php
}
?>

<?php
/* On établit la connexion à MySQL avec mysql_pconnect() plutôt qu'avec mysql_connect()
* car on aura besoin de la connexion un peu plus loin dans le script */
$connexion = mysql_pconnect($serveur, $admin, $mdp);
if($connexion != false)
{
$choixbase = mysql_select_db($base, $connexion);
$sql1 = "SELECT `id`, `region`".
" FROM `region`".
" ORDER BY `id`";
$rech_regions = mysql_query($sql1);
$code_region = array();
$region = array();
/* On active un compteur pour les régions */
$nb_regions = 0;
if($rech_regions != false)
{
while($ligne = mysql_fetch_assoc($rech_regions))
{
array_push($code_region, $ligne['id']);
array_push($region, $ligne['region']);
/* On incrémente de compteur */
$nb_regions++;
}
}
?>
<form action="<?php echo($_SERVER['PHP_SELF']); ?>" method="post" id="chgdept">
<fieldset style="border: 3px double #333399">
<legend>Sélectionnez une région</legend>
<select name="region" id="region" onchange="document.forms['chgdept'].submit();">
<option value="-1">- - - Choisissez une région - - -</option>
<?php
for($i = 0; $i < $nb_regions; $i++)
{
?>
<option value="<?php echo($code_region[$i]); ?>"<?php echo((isset($idr) && $idr == $code_region[$i])?" selected=\"selected\"":null); ?>><?php echo($region[$i]); ?></option>
<?php
}
?>
</select>
<?php
mysql_free_result($rech_regions);
/* On commence par vérifier si on a envoyé un numéro de région et le cas échéant s'il est différent de -1 */
if(isset($idr) && $idr != -1)
{
/* Cération de la requête pour avoir les départements de cette région */
$sql2 = "SELECT `id`, `departement`".
" FROM `departement`".
" WHERE `id_region` = ". $idr ."".
" ORDER BY `id`;";
if($connexion != false)
{
$rech_dept = mysql_query($sql2, $connexion);
/* Un petit compteur pour les départements */
$nd = 0;
/* On crée deux tableaux pour les numéros et les noms des départements */
$code_dept = array();
$nom_dept = array();
/* On va mettre les numéros et noms des départements dans les deux tableaux */
while($ligne_dept = mysql_fetch_assoc($rech_dept))
{
array_push($code_dept, $ligne_dept['id']);
array_push($nom_dept, $ligne_dept['departement']);
$nd++;
}
/* Maintenant on peut construire la liste déroulante */
?>
<select name="departement" id="departement">
<?php
for($d = 0; $d<$nd; $d++)
{
?>
<option value="<?php echo($code_dept[$d]); ?>"<?php echo((isset($dept_selectionne) && $dept_selectionne == $code_dept[$d])?" selected=\"selected\"":null); ?>><?php echo($nom_dept[$d]." (". $code_dept[$d] .")"); ?></option>
<?php
}
?>
</select>
<?php
}
/* Un petit coup de balai */
mysql_free_result($rech_dept);
}
?>

<?php

/* On commence par vérifier si on a envoyé un numéro de région et le cas échéant s'il est différent de -1 */
if(isset($ide) && $ide != -1)
{
/* Cération de la requête pour avoir les départements de cette région */
$sql3 = "SELECT id,ville".
" FROM `ville`".
" WHERE `id_departement` = ". $ide ."".
" ORDER BY `id`;";
if($connexion != false)
{
$rech_ville = mysql_query($sql3, $connexion);
/* Un petit compteur pour les départements */
$nv = 0;
/* On crée deux tableaux pour les numéros et les noms des départements */
$code_ville = array();
$nom_ville = array();
/* On va mettre les numéros et noms des départements dans les deux tableaux */
while($ligne_ville = mysql_fetch_assoc($rech_ville))
{
array_push($code_ville, $ligne_ville['id']);
array_push($nom_ville, $ligne_ville['ville']);
$nv++;
}
/* Maintenant on peut construire la liste déroulante */
?>
<select name="ville" id="ville">
<?php
for($v = 0; $v<$nv; $v++)
{
?>
<option value="<?php echo($code_ville[$v]); ?>"<?php echo((isset($ville_selectionne) && $ville_selectionne == $code_ville[$v])?" selected=\"selected\"":null); ?>><?php echo($nom_ville[$v]." (". $code_ville[$v] .")"); ?></option>
<?php
}
?>
</select>
<?php
}
/* Un petit coup de balai */
mysql_free_result($rech_ville);
}
?>
<br /><input type="submit" name="ok" id="ok" value="Envoyer" />
</fieldset>
</form>
<?php
/* Terminé, on ferme la connexion */
mysql_close($connexion);
}
else
{
/* Si on arrive là, c'est pas bon signe, il faut vérifier les
* paramètres de connexion, mot de passe, serveur pas démarré etc... */
?>
<p>Un incident s'est produit lors de la connexion à la base de données, veuiillez essayer à nouveau ultérieurement.</p>
<?php
}
?>

</body>
</html>


Ma base de donnée:
DROP TABLE IF EXISTS `departement`;
CREATE TABLE IF NOT EXISTS `departement` (
`id` int(11) unsigned NOT NULL auto_increment,
`id_region` int(11) unsigned NOT NULL,
`numero` varchar(2) NOT NULL,
`departement` varchar(255) NOT NULL,
`filtre` varchar(255) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;

DROP TABLE IF EXISTS `region`;
CREATE TABLE IF NOT EXISTS `region` (
`id` int(11) unsigned NOT NULL auto_increment,
`region` varchar(255) NOT NULL,
`filtre` varchar(255) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;

DROP TABLE IF EXISTS `ville`;
CREATE TABLE IF NOT EXISTS `ville` (
`id` int(11) unsigned NOT NULL auto_increment,
`id_departement` int(11) unsigned NOT NULL,
`ville` varchar(255) NOT NULL,
`filtre` varchar(255) NOT NULL,
`cp` varchar(5) NOT NULL,
`lat` float(8,6) NOT NULL,
`lon` float(8,6) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
mardi 8 février 2011 à 16:13:25 | Re : lié 3 liste deroulante

cdg41

toujours personne pour m'aider???


Cette discussion est classée dans : id, not, region, varchar, departement


Répondre à ce message

Sujets en rapport avec ce message

besoin d'aide pour une analyse [ par speedylol ] j'aurais besoins d'une analyse suivant merise pour c'est table ,j'ai perdu toute mon analyse et je doit terminée mon mémoire pour remettre ce soir il creation *.sql [ par westsider ] bonjour,je cherche un script pour creer un fichier *.sql coéplet, j'en ai qui fait ca :create table geneve ( id int(11) not null auto_increment, tit problème moteur de recherche [ par tony4758 ] Bonjour, j'ai crée un moeur de recherche très simple avec base de donnée. Voici la structure de ma base :CREATE TABLE sonarty_search (id INT UNSIGNED auto_increment ne marche pas !!!!! [ par potibulle ] Bonjour, J'ai créé cette table avec easyPHP mySql : CREATE TABLE `annonces_occaz` ( `ID` INT( 1 ) NOT NULL AUTO_INCREMENT , `titre` VARCHAR( 50 ) NO problème pour récupérer un ID [ par Francky23012301 ] Salut à tous,Je réalise le code suivant //Connection à la BDD $db = mysql_connect('localhost', 'root','');                         //Sélection de la b Formulaire recherche [ par flopad ] Salut tout le monde!!J'ai une bdd mysql composée de 4 tables que je fais remplir aux users via un formulaire.Jusque là, tout est ok.Mon problème est a problème d'update dans bdd... [ par djinko ] Bonsoir,J'ai deux tables :---------------------------------------------------------------------------------------CREATE TABLE `membre` (    `id_membre Problème de débutant appel Mysql [ par napster24 ] Bonjour tout le monde, voilà j'ai récupérer un script fonctionnant en php et faisant appel à du SQL. Ce site est en faite un site de Direct Download L Problème avec mon fichier sql [ par pierrehs ] Bonjour, Quand j'importe le fichier sql.sql PHPMyAdmin m'indique cette erreur [i]requête SQL: -- -- Database -- CREATE TABLE `settings` ( `id` INT utiliser un login et mot de passe pour me connecter [ par msi079 ] slt. j'ai pris un exemple sur le net pour l'adapter à mon cas . mais voila que ça marche pas. alors je sollicite votre aide afin de corriger les erreu


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,702 sec (4)

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