Bonjour,
je suis débutant en PHP et mysql...
je souhaite avoir deux listes dynamiques :
un pour un type d'évenement / un pour un type de lieu
et ceci sur la même page...
merci de votre aide.

voici mes codes qui ne fonctionnent pas (rien dans les listes déroulantes) :

types.php :
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
<?php
// configuration
ini_set("register_globals","off");
ini_set("display_errors","off");
ini_set("track_errors","on");
// le tableau des valeurs
list($erreur,$valeurs)=getValeurs();
// y-at-il eu erreur ?
if($erreur){
// affichage page d'erreur
include "valeurs-err.php";
// fin
return;
}//if
// on récupère l'éventuel choix de l'utilisateur
$choix=$_POST["type"];
// on calcule la liste des valeurs à afficher
$HTMLvaleurs="";
for($i=0;$i<count($valeurs);$i++){
// si option courante est égale au choix, on la sélectionne
if (isset($choix) && $choix==$valeurs[$i])
$HTMLvaleurs.="<option selected>$valeurs[$i]</option>\n";
else $HTMLvaleurs.="<option>$valeurs[$i]</option>\n";
}//for
 
// on affiche le formulaire
include "index2.html";
// fin
return;
// ------------------------------------------------------------------------
 
function getValeurs(){
// récupère les valeurs dans une base MySQL
$user="user";
$pwd="mdp";
$db="babase";
$hote="sql.free.fr";
$table="type_ev";
$champ="Type_evenement";
// ouverture d'une connexion persistante au serveur MySQL
// ou sinon d'une connexion normale
($connexion=mysql_pconnect($hote,$user,$pwd))
|| ($connexion=mysql_connect($hote,$user,$pwd));
if(! $connexion)
return array("Base de données indisponible(".mysql_error()."). Veuillez recommencer ultérieurement.");
// obtention des valeurs
mysql_query("SET NAMES UTF8"); 
$selectValeurs=mysql_db_query($db,"select $champ from $table",$connexion);
if(! $selectValeurs)
return array("Base de données indisponible(".mysql_error()."). Veuillez recommencer ultérieurement.");
// les valeurs sont mises dans un tableau
$valeurs=array();
while($ligne=mysql_fetch_row($selectValeurs)){
$valeurs[]=$ligne[0];
}//while
// fermeture de la connexion (si elle est persistante, elle ne sera en fait pas fermée)
mysql_close($connexion);
// retour du résultat
return array("",$valeurs);
}//getValeurs
?>
type_lieu.php :
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
<?php
// configuration
ini_set("register_globals","off");
ini_set("display_errors","off");
ini_set("track_errors","on");
// le tableau des valeurs
list($erreur,$typeux)=gettypeux();
// y-at-il eu erreur ?
if($erreur){
// affichage page d'erreur
include "valeurs-err.php";
// fin
return;
}//if
// on récupère l'éventuel choix de l'utilisateur
$choix=$_POST["type"];
// on calcule la liste des valeurs à afficher
$HTMLvaleurs="";
for($i=0;$i<count($typeux);$i++){
// si option courante est égale au choix, on la sélectionne
if (isset($choix) && $choix==$typeux[$i])
$HTMLvaleurs.="<option selected>$typeux[$i]</option>\n";
else $HTMLvaleurs.="<option>$typeux[$i]</option>\n";
}//for
 
// on affiche le formulaire
include "index2.html";
// fin
return;
// ------------------------------------------------------------------------
 
function gettypeux(){
// récupère les valeurs dans une base MySQL
$user="user";
$pwd="mdp";
$db="babase";
$hote="sql.free.fr";
$table="type_etab";
$champ="type_etablissement";
// ouverture d'une connexion persistante au serveur MySQL
// ou sinon d'une connexion normale
($connexion=mysql_pconnect($hote,$user,$pwd))
|| ($connexion=mysql_connect($hote,$user,$pwd));
if(! $connexion)
return array("Base de données indisponible(".mysql_error()."). Veuillez recommencer ultérieurement.");
// obtention des valeurs
mysql_query("SET NAMES UTF8"); 
$selectValeurs=mysql_db_query($db,"select $champ from $table",$connexion);
if(! $selectValeurs)
return array("Base de données indisponible(".mysql_error()."). Veuillez recommencer ultérieurement.");
// les valeurs sont mises dans un tableau
$typeux=array();
while($ligne=mysql_fetch_row($selectValeurs)){
$typeux[]=$ligne[0];
}//while
// fermeture de la connexion (si elle est persistante, elle ne sera en fait pas fermée)
mysql_close($connexion);
// retour du résultat
return array("",$typeux);
}//gettypeux
?>
et mon html :
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
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>ESSAI</title>
<link rel="stylesheet" type="text/css" href="style.css">
</head>
<body>
 
<fieldset>
<legend> &nbsp; Rechercher un évènement dans l'agenda &nbsp; </legend>
<label for="Type d'évènement">Type d'évènement</label>
<form name="type_evt" method="post" action="types.php">
<select name="type_ev" size="1">
<?php
for($i=0;$i<count($valeurs);$i++){
echo "<option>$valeurs[$i]</option>\n";
}//for
?>
</select>
</form>
 
<label for="Type de lieu">Type de lieu</label>
<form name="type_etab" method="post" action="type_lieu.php">
<select name="type_etab" size="1">
<?php
for($i=0;$i<count($typeux);$i++){
echo "<option>$type[$i]</option>\n";
}//for
?>
</select>
</form>
</fieldset>
<p /><br />
<p>
<input type="submit" value="Envoyer" />
<input type="reset" value="Annuler" />
</p>
</form>
</body>
</html>