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 :

Création d'un sous menu et mémorisation


Sujet :

Langage PHP

  1. #1
    Membre habitué
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    593
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Décembre 2005
    Messages : 593
    Points : 146
    Points
    146
    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 : 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
    <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.

  2. #2
    Membre régulier
    Profil pro
    Développeur informatique
    Inscrit en
    Février 2007
    Messages
    70
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Février 2007
    Messages : 70
    Points : 79
    Points
    79
    Par défaut
    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 : 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
     
     
    $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.

  3. #3
    Membre du Club
    Inscrit en
    Juillet 2009
    Messages
    107
    Détails du profil
    Informations forums :
    Inscription : Juillet 2009
    Messages : 107
    Points : 52
    Points
    52
    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 : 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
    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>

  4. #4
    Membre régulier
    Profil pro
    Inscrit en
    Juin 2009
    Messages
    74
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2009
    Messages : 74
    Points : 85
    Points
    85
    Par défaut
    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é.

Discussions similaires

  1. [Forum] Création de menu avec des sous menu en ascenseur
    Par fraizas77 dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 2
    Dernier message: 20/08/2012, 15h37
  2. [uimenu] Création d'un sous-menu
    Par kawther dans le forum Interfaces Graphiques
    Réponses: 2
    Dernier message: 08/11/2008, 16h51
  3. Création dynamique de sous menu
    Par mhb3010 dans le forum C++Builder
    Réponses: 1
    Dernier message: 19/09/2008, 11h08
  4. Création d'un menu sans sous-menu
    Par Bibicmoi dans le forum wxPython
    Réponses: 7
    Dernier message: 28/08/2007, 15h02
  5. création dynamique d'un sous-menu
    Par OutOfRange dans le forum Delphi
    Réponses: 7
    Dernier message: 09/12/2006, 11h56

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