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 :
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,$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 ?>
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
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 ?>
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> Rechercher un évènement dans l'agenda </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>
Partager