Précédent   Forum des professionnels en informatique > PHP > Langage > Syntaxe
Syntaxe Forum d'entraide sur la syntaxe de PHP et la POO. Avant de poster -> FAQ syntaxe, Cours d'initiation et cours de POO
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 06/10/2007, 18h31   #1
Invité de passage
 
Inscription : février 2006
Messages : 21
Détails du profil
Informations forums :
Inscription : février 2006
Messages : 21
Points : 3
Points : 3
Par défaut [PHP-JS] Menu dynamique PHP

j ai un code qui permet d avoir un menu dynamique en php
celui ci fonctionne correctemnt
mais je ne sais pas ou mettre les lien pour que lorsque je clic sur un sous menu celui ci affiche la page correspondante


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
PHP: 
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> 
<html> 
<head> 
<title>Document sans titre</title> 
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> 
</head> 
 
<body> 
<?php  
 
// Configuration  
// Nombre total de menus  
$nbr = 4;  
 
// Ci-dessous lister vos menus en mettant le titre en premiere place dans le array, les autres seront les sous-menus...  
$menu[1] = array ('Accueil',  
 
);  
 
$menu[2] =array('Virus et Spywares',  
'Virus MSN',  
'Norton et McAfee', 
 
);  
 
$menu[3] = array ('Windows Vista',  
'Activation de Vista',  
'Raccourcis clavier',  
'Point de restauration', 
'Effet Aéro', 
'Compatibilite', 
);  
 
$menu[4] = array ('Astuces',  
'Limiter la connexion d un compte utilisateur',  
); 
 
// On définis le style des menus  
$menu_tpl = '<div style="padding: 2px"><a href="{lien}">{element}</a></div>';  
 
// On boucle pour afficher tout les menus  
for ($i=1; $i<=$nbr; $i++) {  
 
    // On selectionne le nom du Menu  
    $element = $menu[ $i ][0];  
 
    // On prevoit de refermer le menu en cliquant sur le lien (si menu ouvert)  
 
    if ($_GET['to'] == $i) $lien = "";  
    else $lien = '?to='.$i;  
 
    // On applique le style  
    $in = array ('{element}', '{lien}');  
    $out = array ($element, $lien);  
 
    $menus = str_replace ($in, $out, $menu_tpl);  
 
    // On affiche le Menu stylé  
    echo '<p>'.$menus.'</p>';  
 
    // Si les sous-menus sont demandés, on les affiche en fonction...  
    if (isset($_GET['to']) && $_GET['to'] != '') {  
 
        // On vérifie le N° de Menu demandé pour limiter à 1 affichage les sous menus...  
        if ($i == $_GET['to']) {  
 
            // On boucle les sous-menus en fonctions des elements de l'array correspondant.  
            for ($j=1; $j<=count($menu[ $i ])-1; $j++) {  
 
                // On affiche le lien des sous-menus  
                echo  '><a href="?to='.$i.'goto='.$j.' ">'.$menu[ $i ][ $j ].'</a><br />';  
 
            }  
 
        }  
 
    }  
 
}  
 
?>  
 
</body> 
</html>


merci
gtony est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/10/2007, 18h50   #2
Membre Expert
 
Inscription : octobre 2002
Messages : 1 141
Détails du profil
Informations personnelles :
Âge : 32
Localisation : France, Rhône (Rhône Alpes)

Informations forums :
Inscription : octobre 2002
Messages : 1 141
Points : 1 204
Points : 1 204
Envoyer un message via MSN à Raideman
Code :
echo  '><a href="?to='.$i.'goto='.$j.' ">'.$menu[ $i ][ $j ].'</a><br />';
C'est ici, il te faut changer ce qu'il y a apres href=" et insérer la ton lien.

Par contre, a mon avis, je pense que tu devrais plutot faire toi meme ton script parce qu'avec ce script, tu vas etre limité. Sachant que ce script n'ouvre que des pages avec des liens vers la meme page.
Raideman est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/10/2007, 18h55   #3
Invité de passage
 
Inscription : février 2006
Messages : 21
Détails du profil
Informations forums :
Inscription : février 2006
Messages : 21
Points : 3
Points : 3
oui mais moi je souhaite que lorsque l on clic sur un sous menu, on aille sur la page du sous menu conscerne et pas toujours a la meme page
sinon le menu sert a rien.
gtony est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/10/2007, 20h12   #4
Membre Expert
 
Inscription : octobre 2002
Messages : 1 141
Détails du profil
Informations personnelles :
Âge : 32
Localisation : France, Rhône (Rhône Alpes)

Informations forums :
Inscription : octobre 2002
Messages : 1 141
Points : 1 204
Points : 1 204
Envoyer un message via MSN à Raideman
Ben oui j'avais bien compris. Mais le script que tu donnes ne redirige pas vers des pages différents. Tous les liens pointes du menu pointent vers la même page seulement avec des paramètres différents...

Dans ce cas, imaginons que ton script de menu soit dans un fichier index.php.

Il te faut imaginer car l'intérieur de "index.php" il va y avoir un truc du genre;

Code :
1
2
3
4
5
6
if($to==1){
   //afficher la page machin
}
if($to==2){
   //afficher la deuxieme page machin
}
C'est un peu un controleur qui va récupérer les paramètre et choisir la page à inclure.

Donc si toi tu veux faire pointer le lien de ton menu vers une page par exemple 'page.php', ben sans reprendre tout le script que tu donnes, ce n'est pas possible.
Raideman est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/10/2007, 20h19   #5
Membre Expert
 
Inscription : octobre 2002
Messages : 1 141
Détails du profil
Informations personnelles :
Âge : 32
Localisation : France, Rhône (Rhône Alpes)

Informations forums :
Inscription : octobre 2002
Messages : 1 141
Points : 1 204
Points : 1 204
Envoyer un message via MSN à Raideman
Voici une idée à l'arrache:

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
 
PHP: 
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> 
<html> 
<head> 
<title>Document sans titre</title> 
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> 
</head> 
 
<body> 
<?php  
 
// Configuration  
// Nombre total de menus  
$nbr = 4;  
 
// Ci-dessous lister vos menus en mettant le titre en premiere place dans le array, les autres seront les sous-menus...  
$menu[1] [titre]= array ('Accueil',  
 
);  
$menu[1][lien]=array ('#');
 
$menu[2][titre] =array('Virus et Spywares',  
'Virus MSN',  
'Norton et McAfee', 
$menu[2][lien]=array ('#','unepage.php','uneautre.php'); 
);  
 
 
 
// On définis le style des menus  
$menu_tpl = '<div style="padding: 2px"><a href="{lien}">{element}</a></div>';  
 
// On boucle pour afficher tout les menus  
for ($i=1; $i<=$nbr; $i++) {  
 
    // On selectionne le nom du Menu  
    $element = $menu[ $i ][titre][0];  
 
   if ($_GET['to'] == $i) $lien = "";  
    else $lien = '?to='.$i;     
 
    // On applique le style  
    $in = array ('{element}', '{lien}');  
    $out = array ($element, $lien);  
 
    $menus = str_replace ($in, $out, $menu_tpl);  
 
    // On affiche le Menu stylé  
    echo '<p>'.$menus.'</p>';  
 
    // Si les sous-menus sont demandés, on les affiche en fonction...  
    if (isset($_GET['to']) && $_GET['to'] != '') {  
 
        // On vérifie le N° de Menu demandé pour limiter à 1 affichage les sous menus...  
        if ($i == $_GET['to']) {  
 
            // On boucle les sous-menus en fonctions des elements de l'array correspondant.  
            for ($j=1; $j<=count($menu[ $i ][titre])-1; $j++) {  
 
                // On affiche le lien des sous-menus  
                echo  '><a href="'.$menu[ $i ][lien][ $j ].'?to='.$i.'goto='.$j.' ">'.$menu[ $i ][titre][ $j ].'</a><br />';  
 
            }  
 
        }  
 
    }  
 
}  
 
?>  
 
</body> 
</html>
Raideman est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/10/2007, 11h53   #6
Invité de passage
 
Inscription : février 2006
Messages : 21
Détails du profil
Informations forums :
Inscription : février 2006
Messages : 21
Points : 3
Points : 3
Merci Raideman
ca fonctionne exactement comme je le souhaitais

par contre le lien pour le titre de chaque menu ne fonctionne pas, cela marche que pour les sous menus,
en gros si je clic sur un lien de sous menu je vais vers la page conscerne, mais si je clic sur le titre du menu j affiche les sous menu sans charger la page du titre.

exemple : l'accueil

Code :
1
2
3
4
5
 
$menu[1] [titre]= array ('Accueil',  
 
);  
$menu[1][lien]=array ('index.php');
une idee ?
gtony est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/10/2007, 13h44   #7
Membre Expert
 
Inscription : octobre 2002
Messages : 1 141
Détails du profil
Informations personnelles :
Âge : 32
Localisation : France, Rhône (Rhône Alpes)

Informations forums :
Inscription : octobre 2002
Messages : 1 141
Points : 1 204
Points : 1 204
Envoyer un message via MSN à Raideman
Je suis pas du tout sûr de moi mais essaie de remplacer :

Code :
for ($j=1; $j<=count($menu[ $i ][titre])-1; $j++) {
par

f
Code :
or ($j=0; $j<=count($menu[ $i ][titre])-1; $j++) {
Raideman est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/10/2007, 17h22   #8
Invité de passage
 
Inscription : février 2006
Messages : 21
Détails du profil
Informations forums :
Inscription : février 2006
Messages : 21
Points : 3
Points : 3
oui, j y avais pense
cela creer le titre 2 fois

1 fois en tete des sous menu et une fois dans le sous menu

pas tres estetique

donc pas ce que je souhaite
gtony 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 06h38.


 
 
 
 
Partenaires

Hébergement Web