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 :

menu et include


Sujet :

Langage PHP

  1. #1
    Membre du Club
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Décembre 2014
    Messages
    40
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Décembre 2014
    Messages : 40
    Points : 48
    Points
    48
    Par défaut menu et include
    Bonjour à tous,

    Je suis en train de réaliser un site utilisant un menu avec onglet et sous onglet.
    Jusqu'à présent je faisait en sorte d'appeler toutes les pages php à partir de ma page principale avec include, chaque include appelé une autre page php dont le contenu se correspond à un sous onglet.
    Seulement cela m'affiche tout le code de toutes les pages php au sein de ma page principale.

    J'ai utilisé une solution plutôt sale : j'ai fait en sorte que par défaut toutes les pages appelé ne soient pas affiché grâce à l'attribue css : display: none;.
    Seulement je me retrouve maintenant avec une grosse page chargé dans le navigateur, dont certes le contenu n'est pas affiché mais reste chargé inutilement.
    De plus, je suis assez embêter car puisque les ID doivent être unique dans la grosse page chargé par le navigateur.

    Quelle est la manière la plus propre de faire un menu qui plutôt que de masquer les pages suivant les sous onglet où l'on est les chargerais dynamiquement ?

    Si besoin, voici quelques extrait du code :

    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
    class Onglet1 {
    	function Onglet1()
    	{
    		?>
    		<h2>Onglet 1</h2>
    		<div class="subtab">
    			<button class="subtablinks" onclick="openSubTab(event, 'sous-onglet1-1')">a</button>
    			<button class="subtablinks" onclick="openSubTab(event, 'sous-onglet1-2')">b</button>
    			<button class="subtablinks" onclick="openSubTab(event, 'sous-onglet1-3')">c</button>
    			<button class="subtablinks" onclick="openSubTab(event, 'sous-onglet1-4')">d</button>
    		</div>
    		<div id="sous-onglet1-1" class="subtabcontent">
     
     
    			<?php include 'onglet1/a.php'; ?>
    		</div>
    		<div id="sous-onglet1-2" class="subtabcontent">
    			<?php include 'onglet1/b.php'; ?>
    		</div>
     
    		<div id="sous-onglet1-3" class="subtabcontent">
    			<?php include 'onglet1/c'; ?>
    		</div>
     
    		<div id="sous-onglet1-4" class="subtabcontent">
    			<?php include 'onglet1/d'; ?>
    		</div>
    		<?php
    	}
    }
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    <body>
    <div class="container">
        <div class="intro">
        <div class="tab">
            <button class="tablinks" onclick="openTab(event, 'onglet1')">onglet1</button>
        </div>
     
        <div id="onglet1" class="tabcontent">
            <?php $onglet1->Onglet1(); ?>
        </div>
    Et voici le code js :

    Code javascript : 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
    function openTab(evt, tabName) {
        var i, tabcontent, tablinks;
        tabcontent = document.getElementsByClassName("tabcontent");
        for (i = 0; i < tabcontent.length; i++) {
            tabcontent[i].style.display = "none";
        }
        tablinks = document.getElementsByClassName("tablinks");
        for (i = 0; i < tablinks.length; i++) {
            tablinks[i].className = tablinks[i].className.replace(" active", "");
        }
        document.getElementById(tabName).style.display = "block";
        evt.currentTarget.className += " active";
    }
     
    function openSubTab(evt, subTabName) {
        var i, subtabcontent, subtablinks;
        subtabcontent = document.getElementsByClassName("subtabcontent");
        for (i = 0; i < subtabcontent.length; i++) {
            subtabcontent[i].style.display = "none";
        }
        subtablinks = document.getElementsByClassName("subtablinks");
        for (i = 0; i < subtablinks.length; i++) {
            subtablinks[i].className = subtablinks[i].className.replace(" active", "");
        }
        document.getElementById(subTabName).style.display = "block";
        evt.currentTarget.className += " active";
    }

    Je suis désolé si je met trop d'information ; un indice ne serait-ce que général m'irait très bien.

    Merci pour votre aide ! (je débute complètement , vous l'avez surement remarqué)

  2. #2
    Expert éminent sénior
    Avatar de mathieu
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    10 333
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 10 333
    Points : 15 677
    Points
    15 677
    Par défaut
    puisque vous utilisez du php, vous pouvez générer le contenu de la page en fonction d'un argument passé dans l'url.

    regardez l'exemple que j'ai mis en pièce-jointe, je l'avais fait pour une autre discussion qui avait la particularité d'avoir le menu en dessous du contenu mais c'est complètement adaptable à vos besoin.
    Fichiers attachés Fichiers attachés

  3. #3
    Membre du Club
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Décembre 2014
    Messages
    40
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Décembre 2014
    Messages : 40
    Points : 48
    Points
    48
    Par défaut
    Merci !!

    Cela fait des jours que je cherche une solution.
    Je vais tenter d'adapter cela au site, en plus l'exemple est parfait : minimaliste et donc très pédagogique

Discussions similaires

  1. [MySQL] menu site include
    Par molesqualeux dans le forum PHP & Base de données
    Réponses: 1
    Dernier message: 05/10/2009, 19h30
  2. menu javascript et fonction include
    Par tarang dans le forum Langage
    Réponses: 3
    Dernier message: 20/08/2007, 15h09
  3. Lien actif dans include("menu.inc")
    Par rumpeballe dans le forum Langage
    Réponses: 3
    Dernier message: 31/12/2006, 00h55
  4. [MySQL] menu select dans une page include problème de paramètres
    Par starr dans le forum PHP & Base de données
    Réponses: 8
    Dernier message: 07/07/2006, 08h42
  5. [PHP-JS] Menu developpable et include
    Par gregius dans le forum Langage
    Réponses: 7
    Dernier message: 09/06/2006, 15h03

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