Bonjour a tous, debutant en php, c'est un cours que je recois a l'ecole...
j'ai un projet a faire pour fin decembre. j'ai decidé de "refaire" un ebay. toute facon c'est a titre privé.
Venons-en au fait, je voudrais faire un joli menu vertical dynamique qui contiendra les categories et lorsqu'on clique, les sous categories.
ma base de donnée est en postgreSql, j'utilise des styles css.
mon code :
ma feuille de style :
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 <?php session_start();?> <head> <title>Menu vertical</title> <link rel="stylesheet" href="./style.css" /> <script type="text/javascript"> <!-- window.onload=montre; function montre(id) { var d = document.getElementById(id); for (var i = 1; i<=10; i++) { if (document.getElementById('smenu'+i)) { document.getElementById('smenu'+i).style.display='none'; } } if (d) { d.style.display='block'; } } //--> </script> </head> <body> <dl id="menu"> <?php include ('connect.php'); $queryparent = "select * from projet.categorie where id_categorie = id_categorie_parent"; $resultparent = pg_exec($cnx,$queryparent); if(!$resultparent) { echo("Echec de la requete: $queryparent"); exit(); } else { $i=0; while($listeparent = @pg_fetch_array($resultparent,$i++)) { echo("<dt onClick=\"javascript:montre('smenu$listeparent[id_categorie]');\">$listeparent[nom]</dt>"); $queryenfant = "select * from projet.categorie where id_categorie_parent = $listeparent[id_categorie] AND id_categorie <> id_categorie_parent"; $resultenfant = pg_exec($cnx,$queryenfant); if(!$resultenfant) { echo("Echec de la requete: $queryenfant"); exit(); } else { echo(""); echo("<dd id=\"smenu+$i\"> <ul> "); $j=0; while($listeenfant = @pg_fetch_array($resultenfant,$j++)) { echo("<li><a href=\"tagada.html\">$listeenfant[nom]</a></li> "); } echo("</ul> </dd> "); } } } ?> </dl> </body> </html>
mon probleme :<style type="text/css">
<!--
body {
margin: 0;
padding: 0;
background: white;
font: 80% verdana, arial, sans-serif;
}
dl, dt, dd, ul, li {
margin: 0;
padding: 0;
list-style-type: none;
}
#menu {
position: absolute;
top: 0;
left: 0;
}
dl#menu {
width: 15em;
}
dl#menu dt {
cursor: pointer;
margin: 2px 0;;
height: 20px;
line-height: 20px;
text-align: center;
font-weight: bold;
border: 1px solid gray;
background: #ccc;
}
dl#menu dd {
border: 1px solid gray;
}
dl#menu li {
text-align: center;
background: #fff;
}
dl#menu li a, dl#menu dt a {
color: #000;
text-decoration: none;
display: block;
border: 0 none;
height: 100%;
}
dl#menu li a:hover, dl#menu dt a:hover {
background: #eee;
}
#mentions {
font-family: verdana, arial, sans-serif;
position: absolute;
bottom : 205px;
left : 421px;
color: #000;
background-color: #ddd;
}
#mentions a {text-decoration: none;
color: #222;
}
#mentions a:hover{text-decoration: underline;
}
-->
</style>
mon menu est "ouvert" des l'ouverture de la page alors qu'il faudrait cliquer sur la categorie principale pour que ca s'ouvre... je comprends pas pourquoi ca fait ca!
Je pense que le code est assez simple, et ca fonctionne lorsqu'il n'y a pas de php dedans! donc c'est bien moi qui ai mis le souc mais je ne trouve pas comment
Je peux poster un screenshot du resultat si c'est nécessaire.
Un grand merci d'avance
Partager