Précédent   Forum des professionnels en informatique > PHP > Langage
Langage Forum sur le langage PHP, la POO, les conventions, la sécurité, etc. Avant de poster : FAQ Langage, toutes les FAQ PHP, cours langage et sources PHP
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 17/09/2008, 15h52   #1
Membre habitué
 
Inscription : décembre 2005
Messages : 562
Détails du profil
Informations forums :
Inscription : décembre 2005
Messages : 562
Points : 113
Points : 113
Par défaut Création d'un sous menu et mémorisation

Bonjour a tous.

Voila je débute dans un nouveau projet pour une société. et je suis confronter devant un problème. j'ai déjà fais pas mal de recherche la dessus mais je ne trouve pas exactement ce que je veux faire donc je pose ma question sur ce forum

J'ai ma page principale appelée Home.php qui contient en autre ceci :

Code :
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
<div id="nav">
  <div>
    <div>
	<ul>
      	<li><a href="home.php?page=Home">Home</a></li>  
		<li><a href="home.php?page=Sales">Sales</a></li>
		<li><a href="home.php?page=Contacts">Contacts</a></li>  
		<li><a href="home.php?page=Events">Events</a></li>     	
     </ul>
    </div>
  </div>
</div>
 
 
<div id="content">
<?php  
if (isset($_GET['page'])) 
{
	if ($_GET['page'] == "Home")
    {
        include("includes/Home.php");
    } 
 
	if ($_GET['page'] == "Sales")
    {
        include("includes/Sales.php");
    }
 
	if ($_GET['page'] == "Contacts")
    {
        include("includes/Contacts.php");
    } 
 
	if ($_GET['page'] == "Events")
    {
        include("includes/Events.php");
    } 
 
}
else
{
include("includes/Acceuil.php");
} 
 
?>
Donc pour résume :

dans ma partie div de la navigation j'affiche mon menu principale qui renvoie dans ma page home une variable (page) qui va être utilisée pour chargé la page demandée dans la partie div content.

jusque la pas très compliqué :p

Maintenant je voudrais créer un sous menu c'est a dire quand je clic sur Sales il m'affiche en dessous du menu principale les choix a propos des sales. de même pour Events, contacts.

voila si vous saviez m'aiguillez sur la méthode a suivre.

Je vous remercie d'avance.
bullrot est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/09/2008, 17h31   #2
Membre du Club
 
Développeur informatique
Inscription : février 2007
Messages : 70
Détails du profil
Informations personnelles :
Âge : 27
Localisation : France, Rhône (Rhône Alpes)

Informations professionnelles :
Activité : Développeur informatique

Informations forums :
Inscription : février 2007
Messages : 70
Points : 61
Points : 61
Envoyer un message via MSN à f.lam
Je te suggère de placer les données de manières un peu plus dynamiques .

Par exemple, tu peux faire un tableau pour construire ton menu principal :
chaque entrée de ton tableau de menu possède un sous tableau ( s'il posside un sous menu) ou rien s'il en possede pas comme le Home.

Voila une suggestion :

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
 
 
$a_menu = array (
 
array(
   "label" => "Home",
   "sous_menu" => array()
  ),
array(
   "label" => "Sales",
   "sous_menu" => array("Ssmenu1","Ssmenu2","Sssmenu3")
  ),
array(
   "label" => "Contact",
   "sous_menu" => array("Ssmenu4","Ssmenu5","Sssmenu6")
  )
);
etc, apres tu peux ajouter autant de clé que tu veux.

Lorsque tu va cliquer sur Sales par exemple, tu auras la une variable en get ( toi tu passe le mot Sales , moi je te suggererais plutot de passer un index , une info chiffré plutot) et tu utilises cette variable get pour savoir si le menu que tu viens de cliquer possede ou non un sous menu que tu parcours et affiches.
f.lam est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/07/2009, 11h21   #3
Invité régulier
 
Inscription : juillet 2009
Messages : 58
Détails du profil
Informations forums :
Inscription : juillet 2009
Messages : 58
Points : 9
Points : 9
Par défaut suivi de la réponse de f.lam

Bonjour f.lam,
En parcourant google, je suis tombé sur ce post qui pourrait m'aider puisque j'ai un problème proche de celui de bullrot. Je commence un site php avec un header où il y a quatre boutons différents, un accueil et quatre autres pour ouvrir un menu différent avec une page contenu en rapport. J'ai donc quatre cinq menus différents avec des sous-menu différents, et cinq pages contenu qui s'ouvrent à l'ouverture des menus demandés. Mon problème survient lorsque j'ouvre un menu, je clique sur les sous-menus et je revient sur le menu accueil systématiquement. J'ai essayé de m'inspirer du code array de f.lam qui convient pour mon problème mais j'ai toujours mon problème...
Je joins mon code s'il est possible de m'aider.
Merci


Code :
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
154
<div id="BandeauGauche">
 
<?php
 
$a_menu = array (
 
array(
   "label" => "MenuAccueil",
   "sous_menu" => array("S1","S2","S3","S4","S5","S6","S7","S8","S9","S10","S11","S12","S13","S14","S15","S16","S17","S18","S19","S20","S21")
  ), 
 
array(
   "label" => "MenuAS",
   "sous_menu" => array("Smenu1","Smenu2","Smenu3","Smenu4","Smenu5","Smenu6","Smenu7","Smenu8","Smenu9","Smenu10","Smenu11","Smenu12","Smenu13","Smenu14","Smenu15","Smenu16","Smenu17","Smenu18","Smenu19","Smenu20","Smenu21")
  ),
array(
   "label" => "MenuBio",
   "sous_menu" => array("Smenu1Bis","Smenu2Bis","Smenu3Bis","Smenu4Bis","Smenu5Bis","Smenu6Bis","Smenu7Bis","Smenu8Bis","Smenu9Bis","Smenu10Bis","Smenu11Bis","Smenu12Bis","Smenu13Bis","Smenu14Bis","Smenu15Bis","Smenu16Bis","Smenu17Bis","Smenu18Bis","Smenu19Bis","Smenu20Bis","Smenu21Bis")
  ),
array(
   "label" => "MenuFine",
   "sous_menu" => array("Smenu1Tris","Smenu2Tris","Smenu3Tris","Smenu4Tris","Smenu5Tris","Smenu6Tris","Smenu7Tris","Smenu8Tris","Smenu9Tris","Smenu10Tris","Smenu11Tris","Smenu12Tris","Smenu13Tris","Smenu14Tris","Smenu15Tris","Smenu16Tris","Smenu17Tris","Smenu18Tris","Smenu19Tris","Smenu20Tris","Smenu21Tris")
  ),
  array(
   "label" => "MenuBioChroma",
   "sous_menu" => array("Smenu1Qris","Smenu2Qris","Smenu3Qris","Smenu4Qris","Smenu5Qris","Smenu6Qris","Smenu7Qris","Smenu8Qris","Smenu9Qris","Smenu10Qris","Smenu11Qris","Smenu12Qris","Smenu13Qris","Smenu14Qris","Smenu15Qris","Smenu16Qris","Smenu17Qris","Smenu18Qris","Smenu19Qris","Smenu20Qris","Smenu21Qris")
  )
);
 
 
if (isset($_GET['label'])) 
{
    if ($_GET['label'] == "MenuAccueil")
    {
        include("includes/MenuAccueil.inc.php");
    } 
 
	if ($_GET['label'] == "MenuAS")
    {
        include("includes/MenuAccordionAS.inc.php");
    } 
 
	if ($_GET['label'] == "MenuBio")
    {
        include("includes/MenuAccordionBio.inc.php");
    }
 
	if ($_GET['label'] == "MenuFine")
    {
        include("includes/MenuAccordionFine.inc.php");
    } 
 
	if ($_GET['label'] == "MenuBioChroma")
    {
        include("includes/MenuAccordionBioChroma.inc.php");
    } 
 
}
else
{
include("includes/MenuAccordionBioChroma.inc.php");
} 
 
if (isset($_GET['sous_menu'])) 
{
    if ($_GET['sous_menu'] == "S1")
    {
        include("includes/MenuAccueil.inc.php");
    } 
 
	if ($_GET['label'] == "MenuAS")
    {
        include("includes/MenuAccordionAS.inc.php");
    } 
 
	if ($_GET['label'] == "MenuBio")
    {
        include("includes/MenuAccordionBio.inc.php");
    }
 
	if ($_GET['label'] == "MenuFine")
    {
        include("includes/MenuAccordionFine.inc.php");
    } 
 
	if ($_GET['label'] == "MenuBioChroma")
    {
        include("includes/MenuAccordionBioChroma.inc.php");
    } 
 
}
else
{
include("includes/MenuAccordionBioChroma.inc.php");
} 
 
 
 
 
?>
 
</div>
<div id="Contenu">
 
<?php
 
// on récupère la rubrique passée en paramètre
if(!empty($_GET["menu"])) $menu = $_GET["menu"];
else $menu = "";
//on affiche la page associée à la rubrique
switch($menu)
{
case "MenuAccueil": include('includes/Accueil1.php');break;
case "MenuAS": include('includes/principal_chrom.php');break;
case "MenuBio": include('includes/principal_bio.php');break;
case "MenuFine": include('includes/principal_fine.php');break;
case "MenuBioChroma": include('includes/principal_BioChromato.php');break;
default: include('includes/Accueil1.php');break;
}
 
  // On définit le tableau contenant les pages autorisées
  // ----------------------------------------------------
 
  $pageOK = array(
  				  'accueil1' => 'includes/accueil1.php',
                  'accueil2' => 'includes/accueil2.php',
                  'accueil3' => 'includes/accueil3.php',
                  'accueil4' => 'includes/accueil4.php',
                  'accueil5' => 'includes/accueil5.php',
                  'accueil' => 'includes/accueil.php',
				  'principal_chrom' => 'includes/principal_chrom.php',
				  'principal_bio' => 'includes/principal_bio.php',
				  'principal_BioChromato' => 'includes/principal_BioChromato.php',
				  'principal_fine' => 'includes/principal_fine.php',);
 
  // On teste que le paramètre d'url existe et qu'il est bien autorisé
  // -----------------------------------------------------------------
  if ( (isset($_GET['page'])) && (isset($pageOK[$_GET['page']])) ) {
    include($pageOK[$_GET['page']]);   // Nous appelons le contenu central de la page
  } else {
    include('includes/accueil.php');   // Page par défaut quant elle n'existe pas dans le tableau
  }
 
?>
</div>
<div id="BandeauBas">
<?php
  require('includes/footer.inc.php');
?>
</div>
 
 
</body>
</html>
LiliValerie est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 17/07/2009, 10h59   #4
Membre régulier
 
Inscription : juin 2009
Messages : 74
Détails du profil
Informations forums :
Inscription : juin 2009
Messages : 74
Points : 73
Points : 73
il serait interressant d'avoir les un exemple de tes menus, pour voir un peu quelles sont toutes ces variables GET (label, sous_menu, menu et page) et leurs utilité.
_IpC_ est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 06h04.


 
 
 
 
Partenaires

Hébergement Web