IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

[PHP-JS] Menu dynamique PHP


Sujet :

Langage PHP

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Février 2006
    Messages
    21
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 21
    Points : 10
    Points
    10
    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 : 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
    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

  2. #2
    Membre expérimenté

    Profil pro
    Inscrit en
    Octobre 2002
    Messages
    1 138
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Octobre 2002
    Messages : 1 138
    Points : 1 504
    Points
    1 504
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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.

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Février 2006
    Messages
    21
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 21
    Points : 10
    Points
    10
    Par défaut
    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.

  4. #4
    Membre expérimenté

    Profil pro
    Inscrit en
    Octobre 2002
    Messages
    1 138
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Octobre 2002
    Messages : 1 138
    Points : 1 504
    Points
    1 504
    Par défaut
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    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.

  5. #5
    Membre expérimenté

    Profil pro
    Inscrit en
    Octobre 2002
    Messages
    1 138
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Octobre 2002
    Messages : 1 138
    Points : 1 504
    Points
    1 504
    Par défaut
    Voici une idée à l'arrache:

    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: 
    <!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>

  6. #6
    Membre à l'essai
    Profil pro
    Inscrit en
    Février 2006
    Messages
    21
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 21
    Points : 10
    Points
    10
    Par défaut
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    $menu[1] [titre]= array ('Accueil',  
     
    );  
    $menu[1][lien]=array ('index.php');
    une idee ?

  7. #7
    Membre expérimenté

    Profil pro
    Inscrit en
    Octobre 2002
    Messages
    1 138
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Octobre 2002
    Messages : 1 138
    Points : 1 504
    Points
    1 504
    Par défaut
    Je suis pas du tout sûr de moi mais essaie de remplacer :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    for ($j=1; $j<=count($menu[ $i ][titre])-1; $j++) {
    par

    f
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    or ($j=0; $j<=count($menu[ $i ][titre])-1; $j++) {

  8. #8
    Membre à l'essai
    Profil pro
    Inscrit en
    Février 2006
    Messages
    21
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 21
    Points : 10
    Points
    10
    Par défaut
    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

Discussions similaires

  1. Menu dynamique PHP/MySQL
    Par okoweb dans le forum Langage
    Réponses: 12
    Dernier message: 07/03/2009, 09h46
  2. [MySQL] Menu dynamique PHP / MySQL CSS
    Par mouchagheb dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 18/06/2008, 12h33
  3. Menu dynamique PHP
    Par JamesP dans le forum Langage
    Réponses: 4
    Dernier message: 16/06/2006, 13h25
  4. [PHP-JS] menu dynamique, comment faire?
    Par jeff1985 dans le forum Langage
    Réponses: 2
    Dernier message: 30/05/2006, 14h57
  5. [PostgreSQL] [PostGreSQL] menu dynamique php-postgre-css
    Par tyrann dans le forum PHP & Base de données
    Réponses: 6
    Dernier message: 02/11/2005, 18h23

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo