Bonjour,
nouveau sur ce site, alors je ne connais pas trop encore le fonctionnement.

Je reprends un sujet qui n'a pas bougé depuis 2008 mais qui correspond tout à fait à ce que je cherche :
une première liste de choix provenant d'une base de donnée, et qui affiche une deuxième liste de correspondance provenant aussi d'une bdd, et qui à son tour donnera un résultat dans un champ.

Je suis débutant mais passionné, sans études informatiques, j'ai appris tout seul et monte mon petit serveur personnel depuis des années.

J'ai commencé par un simple mot sur une page internet, que j'ai réussi à mettre en ligne, puis une bdd, des formulaires en php, quelques notions en javascript, ...en fait j'ai lu des scripts, je les ai essayés, et mis bout à bout en modifiant un peu et je m'améliore de plus en plus.

J'ai toujours réussi à trouver les solutions, même si j'y passe des heures, mais là je bloque vraiment depuis quelques jours alors j'ai osé demander de l'aide pour la première fois, svp.


Si avec l'aide de jreaux62, Claudine a réussi à faire fonctionner ce programme, pourquoi ne fonctionne-t-il pas chez moi ?

J'ai bien la page qui s'affiche avec les deux listes déroulantes, j'ai vérifié en inversant les tables de la bdd, les deux listes "lieu" et "salle" s'affichent, mais uniquement dans la première liste, il ne se passe rien dans la seconde liste quand je sélectionne un choix dans la première.

De plus Claudine dit que çà fonctionne lorsque l'on appuie sur un bouton, alors que moi je ne vois pas de bouton.

Si quelqu'un peut me venir en aide svp, je vous mets une copie de mon fichier essai3.php (j'ai juste mis secret la partie "Connection à la db").


Cordialement,
Stéphane.



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
 
<!DOCTYPE HTML>
<html xmlns="http://www.w3.org/1999/xhtml" dir="ltr">
 
<head>
	<title>Document sans titre</title>
	<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
 
 
 
 
<?php
// connection à la DB
$link = mysql_connect("******", "******", "******") or die ('Erreur : '.mysql_error() );
mysql_select_db("******") or die ('Erreur :'.mysql_error());
?>
 
 
 
 
<script type="text/javascript">
	function modifcombo(){
		var idlieu = document.form1.selectlieu.value;
		document.location.replace("essai3.php?lieu=" + idlieu );
	}
</script>
 
 
</head>
 
 
 
 
<body>
 
 
<?php
// initialisation/recuperation de la selection
// lieu
if (isset($_GET['lieu'])){
	$lieu = $_GET['lieu'];
} elseif (isset($_POST['selectlieu'])){
	$lieu = $_POST['selectlieu'];
} else {
	$lieu = '';
}
// salle
if (isset($_POST['selectsalle'])){
	$salle = $_POST['selectsalle'];
} else {
	$salle = '';
}
?>
 
 
 
 
 
	<p>Essai formulaire</p>
 
	<form name="form1" method="post" action="">
	<table width="100%" border="1">
	<tr>
	    <td>lieu :</td>
		<td>
			<select id="idselectlieu" name="selectlieu" class="txt16-000000" onChange="javascript: modifcombo();">
				<option value="">...</option><!-- Valeur vide pour forcer l'utilisateur a selectionner  -->
<?php			// Execution requete : tous les LIEUX
				$ma_req = "SELECT * FROM salle;";					  
				$res_req = mysql_query($ma_req) or die("Selection table \"lieu\" impossible");
 
				// Affectation des variables utilisees pour l'affichage
				if (mysql_num_rows($res_req)!=0) { // resultat non vide
					while ($une_ligne = mysql_fetch_array($res_req)) {
						$id_lieu = $une_ligne["id_salle"];
						$nom_lieu = $une_ligne["nom_salle"];
						$sel_lieu = ($id_lieu == $lieu)? ' selected="selected"' : ''; // option selectionnee ? oui : non
?>
				<option value="<?php echo $id_lieu; ?>"<?php echo $sel_lieu; ?>><?php echo $nom_lieu; ?></option>
<?php				} // fin while
				} // fin if
?> 
			</select>
		</td>
	</tr>
	<tr>
		<td>salle :</td>   
        <td>
			<select id="idselectsalle" name="selectsalle" class="txt16-000000">		
				<option value="">...</option><!-- Valeur vide pour forcer l'utilisateur a selectionner  -->
<?php	  		// Execution requete : les SALLES de ce lieu (selectionné)
				$ma_req = "SELECT * FROM salle WHERE id_lieu = '".$lieu."';";
				$res_req = mysql_query($ma_req) or die("Selection table \"salle\" impossible");
				// Affectation des variables utilis?es pour l'affichage
				if (mysql_num_rows($res_req)!=0) // resultat non vide
				{  
					while ($une_ligne = mysql_fetch_array($res_req)) {
						$id_salle = $une_ligne["id_salle"];
						$nom_salle = $une_ligne["nom_salle"];
						$sel_salle = ($id_salle == $salle)? ' selected="selected"' : ''; // option selectionnee ? oui : non
?>
				<option value="<?php echo $id_salle; ?>"<?php echo $sel_salle; ?>><?php echo $nom_salle; ?></option>	
<?php				} // fin while
				} // fin if
?> 
			</select>
		</td>
	</tr>
 
	<tr>
    <td colspan="2"><input type="submit" name="envoiformulaire" value="envoyer" /></td>
	</tr>
 
	</table>
	</form>
 
</body>
</html>