Bonjour a tous voilà je suis nouveau sur le forum et j'ai un leger souci au niveau du développement de mon site web. C'est un site de voyage dans lequel on peut ajouter une destination, la destination se caractérisant par un nom de pays (nompays) un nom de ville (nomville) et un commentaire et un type. Ma table my sql s'appelle destination. Je souhaiterai creer 2 listes liées c'est à dire lorsque je clique sur un pays la liste des villes se mettent à jour toute seul. J'ai utilise un tuto de liste liée que j'ai trouve sur votre forum il fonctionne trés bien lorsque je fait un select * hors moi je voudrais faire un select distinct nompays pour remplir ma premiere liste pour eviter les doublons. Et la les problemes arrivent lorsque je fait ce sélect distinct j'ai le message d'erreur select impossible qui se met au niveau de ma seconde liste. Ne m'y connaissant pas trop en java j'ai besoin de votre aide
Voici la structure de ma table:
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
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
 
-- phpMyAdmin SQL Dump
-- version 2.11.6
-- http://www.phpmyadmin.net -- Serveur: localhost
-- Généré le : Sam 13 Décembre 2008 à 08:08
-- Version du serveur: 5.0.51
-- Version de PHP: 5.2.6
 
SET SQL_MODE="NO_AUTO_VALUE_ON_ZERO";
 
-- 
-- Base de données: `adebono`
-- 
 
-- --------------------------------------------------------
 
-- 
-- Structure de la table `destination`
-- 
 
CREATE TABLE `destination` (
`id` int(11) NOT NULL auto_increment,
`nompays` varchar(20) NOT NULL,
`nomville` varchar(20) NOT NULL,
`type` varchar(10) NOT NULL,
`commentaire` text NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=5 ;
 
-- 
-- Contenu de la table `destination`
-- 
 
INSERT INTO `destination` (`id`, `nompays`, `nomville`, `type`, `commentaire`) VALUES
(1, 'france', 'paris', 'cafe', 'tres bon cafe'),
(2, 'espagne', 'madrid', 'hotel', 'hotel du port'),
(3, 'allemange', 'munich', 'restaurant', 'restaurant bavarois'),
(4, 'france', 'cannes', 'cafe', 'cafã© roma');
 
 
 
Voici ma premiere page qui genere les 2 listes essai.php
 
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<script type="text/javascript">
/**
* Permet d'envoyer des données en GET ou POST en utilisant les XmlHttpRequest
*/
function sendData(param, page)
{
if(document.all)
{
//Internet Explorer
var XhrObj = new ActiveXObject("Microsoft.XMLHTTP") ;
}//fin if
else
{
//Mozilla
var XhrObj = new XMLHttpRequest();
}//fin else
 
//définition de l'endroit d'affichage:
var content = document.getElementById("contenu");
 
XhrObj.open("POST", page);
 
//Ok pour la page cible
XhrObj.onreadystatechange = function()
{
if (XhrObj.readyState == 4 && XhrObj.status == 200)
content.innerHTML = XhrObj.responseText ;
}
 
XhrObj.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
XhrObj.send(param);
}//fin fonction SendData
 
</script>
</head>
<body>
 
<?php
// Paramètres de la Connexion à la base MYSQL
include("base.php");
$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
$rq="Select DISTINCT(nompays) from destination order by nompays;";
$result= mysql_query ($rq) or die ("Select impossible");
echo "<form method='POST' action='valid.php'>";?> <select size="1" name="pays" OnChange="sendData('id='+this.value,'liresc2.php')" onKeyUp="sendData('id='+this.value,'liresc.php')">
 
<?php
while ($dt=mysql_fetch_row($result))
{
// Remplir la liste déroulante des catégorie
echo "<option value=".($dt[0]).">".($dt[0])."</option>";
if ($i==0) { $j=$dt[0]; $i=1; } // garder la valeur du premier enregistrement
}
 
?>
</select><br><br>
 
 
 
<div id="contenu">
<?php
// affichage des sous-catégorie appartenant à la première catégorie.
echo "<select size='1' name='ville'>";
$rq="Select nomville from destination where nompays=".$j." order by nomville;";
$result= mysql_query ($rq) or die ("Select impossible");
// $i = initialise le variable i
$i=0;
while ($dt=mysql_fetch_row($result))
{
echo "<option value=".utf8_encode($dt[0]).">".utf8_encode($dt[0])."</option><br>";
}
echo "</select>";
?>
</div>
</form>
</body>
</html>
 
 
et voici la seconde page liresc2.php qui execute la seconde requete sql.
<?php
header('Content-type: text') ; // on déclare ce qui va être afficher
 
// test des POST emis
if(isset($_POST['id']) && !empty($_POST['id']) ){
include("base.php");
$rq="Select nomville from destination where nompays=".$_POST['id']." order by nomville;";
$result= mysql_query ($rq) or die ("Select impossible");
// $i = initialise le variable i
$i=0;
if (mysql_num_rows($result)>0)
{
echo "<select size='1' name='ville'>";
}
 
 
while ($dt=mysql_fetch_row($result))
{
echo "<option value=".utf8_encode($dt[0]).">".utf8_encode($dt[0])."</option><br>";
}
echo "</select>";
}
 
?>
Merci de votre aide je cherche depuis 2 jours et la je suis vraiment bloqué




D'aprés moi le souci vient de mon $_POST[id] qui est comparé à nompays dans liresc2 et de $j qui est aussi comparé à nompays pour le premier affichage mais je ne sais pas resoudre le probleme.