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 developpable et include


Sujet :

Langage PHP

  1. #1
    Membre du Club
    Inscrit en
    Décembre 2004
    Messages
    138
    Détails du profil
    Informations forums :
    Inscription : Décembre 2004
    Messages : 138
    Points : 43
    Points
    43
    Par défaut [PHP-JS] Menu developpable et include
    Hello,
    Je suis un newbie en php mais j'essaye de faire de mon mieux... mais là, je coince...

    la structure de la page est classique, : en-tête, menu gauche, contenu, pied-de page

    Dans le menu gauche, je fais appel à une application javascript pour avoir un menu développable.
    Le problème, c'est que quand je clique sur un lien du menu, il recharge toute la page... Et donc le menu se referme et l'application flash de la barre d'en-tête recommence(défilement d'images)...

    Voici le code du la partie contenu de l'index.php :
    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
     
      <div class="frame">
    	  <?php
     
        $pageOK = array('objectifs' => 'objectifs.php',
      				  'missions' => 'missions.php');
                      'accueil' => 'accueil.php');
     
     
      if ( (isset($_GET['page'])) && (isset($pageOK[$_GET['page']])) ) {
        include($pageOK[$_GET['page']]);  
      } else {
        include('accueil.php');   /
     
    ?>
     
            </td></div>
    et dans le javascript :

    [code]
    ...
    if(document.createElement) window.onload = initMenu;
    function MenuDisplay()
    {
    document.write('<ul id="menu">');
    document.write('<li class="puce_noeud">Présentation');
    document.write('<ol>');
    document.write('<li class="puce_sous_cat"><a href=../index.php?page=objectifs>Missions et Objectifs</a></li>');
    document.write('<li class="puce_sous_cat"><a href=../index.php?page=accueil>accueil</a></li>');
    document.write('</ol>');
    ...
    [\code]
    Dois-je introduire une fonction qui empêche le rechargement total?

    merci

    Greg

  2. #2
    Membre émérite

    Homme Profil pro
    Expert PHP
    Inscrit en
    Novembre 2004
    Messages
    2 127
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Expert PHP
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Novembre 2004
    Messages : 2 127
    Points : 2 557
    Points
    2 557
    Par défaut
    il faut mettre un a la fin de tes liens pour eviter le reload.

  3. #3
    Membre du Club
    Inscrit en
    Décembre 2004
    Messages
    138
    Détails du profil
    Informations forums :
    Inscription : Décembre 2004
    Messages : 138
    Points : 43
    Points
    43
    Par défaut
    Citation Envoyé par Maxoo
    il faut mettre un a la fin de tes liens pour eviter le reload.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    document.write('<li class="puce_sous_cat"><a href=../index.php?page=objectifs#>Missions et Objectifs</a></li>');
    Comme ça?
    ça ne marche pas....

  4. #4
    Membre émérite

    Homme Profil pro
    Expert PHP
    Inscrit en
    Novembre 2004
    Messages
    2 127
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Expert PHP
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Novembre 2004
    Messages : 2 127
    Points : 2 557
    Points
    2 557
    Par défaut
    non, sur le lien que tu cliques pour avoir le menu display

  5. #5
    Membre du Club
    Inscrit en
    Décembre 2004
    Messages
    138
    Détails du profil
    Informations forums :
    Inscription : Décembre 2004
    Messages : 138
    Points : 43
    Points
    43
    Par défaut
    mais le menu est toujours visible...
    je ne doit plas cliquer sur un lien pour l'afficher...

  6. #6
    Membre émérite

    Homme Profil pro
    Expert PHP
    Inscrit en
    Novembre 2004
    Messages
    2 127
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Expert PHP
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Novembre 2004
    Messages : 2 127
    Points : 2 557
    Points
    2 557
    Par défaut
    Citation Envoyé par gregius
    mais le menu est toujours visible...
    je ne doit plas cliquer sur un lien pour l'afficher...
    tu as dit que y a un truc qui se developpe a gauche quand tu cliques sur quelque chose. c'est sur ce quelque chose qu'il faut rajouter un #

  7. #7
    Membre du Club
    Inscrit en
    Décembre 2004
    Messages
    138
    Détails du profil
    Informations forums :
    Inscription : Décembre 2004
    Messages : 138
    Points : 43
    Points
    43
    Par défaut
    Citation Envoyé par Maxoo
    tu as dit que y a un truc qui se developpe a gauche quand tu cliques sur quelque chose. c'est sur ce quelque chose qu'il faut rajouter un #

    Je fais appel dans la partie gauche à une page menu.php dans laquelle j'ai mis le javascript :

    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
     
    if(!window.Node){
    	var Node = {ELEMENT_NODE : 1, TEXT_NODE : 3};
    }
    function checkNode(node, filter){
    	return (filter == null || node.nodeType == Node[filter] || node.nodeName.toUpperCase() == filter.toUpperCase());
    }
    function getChildren(node, filter){
    	var result = new Array();
    	var children = node.childNodes;
    	for(var i = 0; i < children.length; i++){
    		if(checkNode(children[i], filter)) result[result.length] = children[i];
    	}
    	return result;
    }
    function getChildrenByElement(node){
    	return getChildren(node, "ELEMENT_NODE");
    }
    function getFirstChild(node, filter){
    	var child;
    	var children = node.childNodes;
    	for(var i = 0; i < children.length; i++){
    		child = children[i];
    		if(checkNode(child, filter)) return child;
    	}
    	return null;
    }
    function getFirstChildByText(node){
    	return getFirstChild(node, "TEXT_NODE");
    }
    function getNextSibling(node, filter){
    	for(var sibling = node.nextSibling; sibling != null; sibling = sibling.nextSibling){
    		if(checkNode(sibling, filter)) return sibling;
    	}
    	return null;
    }
    function getNextSiblingByElement(node){
    	return getNextSibling(node, "ELEMENT_NODE");
    }
     
    var activeMenu = null;
     
    function showMenu(){
    	if(activeMenu){
    		activeMenu.className = "";
    		getNextSiblingByElement(activeMenu).style.display = "none";
    	}
    	if(this == activeMenu){
    		activeMenu = null;
    	}else{
    		this.className = "active";
    		getNextSiblingByElement(this).style.display = "block";
    		activeMenu = this;
    	}
    	return false;
    }
    function initMenu(){
    	var menus, menu, text, a, i;
    	menus = getChildrenByElement(document.getElementById("menu"));
    	for(i = 0; i < menus.length; i++){
    		menu = menus[i];
    		text = getFirstChildByText(menu);
    		a = document.createElement("a");
    		menu.replaceChild(a, text);
    		a.appendChild(text);
    		a.href = "#";
    		a.onfocus = function(){this.blur()};
    	}
    }
    if(document.createElement) window.onload = initMenu;
    function MenuDisplay()
    {
    	document.write('<ul id="menu">');
    		document.write('<li class="puce_noeud">Présentation');
    		  document.write('<ol>');
    		    document.write('<li class="puce_sous_cat"><a href=index.php?page=objectifs>Missions et Objectifs</a></li>');
    		    document.write('<li class="puce_sous_cat"><a href=index.php?page=accueil>accueil</a></li>');
    		  document.write('</ol>');
    		  document.write('<div class="separateur"></div>');
    		document.write('</li>');
    		document.write('<li class="puce_noeud">Formation');
    		  document.write('<ol>');
    		    document.write('<li class="puce_sous_cat"><a href="http://cpdt.wallonie.be/formation/formation.html">Présentation</a></li>');
    		    document.write('<li class="puce_sous_cat"><a href="http://cpdt.wallonie.be/formation/conseillers.html">Les conseillers en AT</a></li>');
    		    document.write('<li class="puce_sous_cat"><a href="http://cpdt.wallonie.be/formation/programme.html">Programme</a></li>');
    		    document.write('<li class="puce_sous_cat"><a href="http://cpdt.wallonie.be/formation/calendrier.html">Calendrier</a></li>');
    		    document.write('<li class="puce_sous_cat"><a href="http://cpdt.wallonie.be/formation/documents.html">Documents</a></li>');
    		    document.write('<li class="puce_sous_cat"><a href="http://cpdt.wallonie.be/formation/contacts.html">Contacts</a></li>');
    		  document.write('</ol>');
    		  document.write('<div class="separateur"></div>');
    		document.write('</li>');
    		document.write('<li class="puce_noeud">Recherches');
    		  document.write('<ol>');
    		    document.write('<li class="puce_sous_cat"><a href="http://cpdt.wallonie.be/construction.html">Finalisées</a></li>');
    		    document.write('<li class="puce_sous_cat"><a href="http://cpdt.wallonie.be/construction.html">En cours</a></li>');
    		  document.write('</ol>');
    		  document.write('<div class="separateur"></div>');
    		document.write('</li>');
     
    	document.write('</ul>');
    }

    Ne faites pas attention aux autre liens que les deux premiers...

  8. #8
    Membre du Club
    Inscrit en
    Décembre 2004
    Messages
    138
    Détails du profil
    Informations forums :
    Inscription : Décembre 2004
    Messages : 138
    Points : 43
    Points
    43
    Par défaut
    Personne n'aurait de solutions?
    J'ai vu que les seules solutions sont de type AJAX...
    mais ça m'a lair bien compliqué...

    Greg

Discussions similaires

  1. [PHP-JS] Menu déroulant avec proposition de login
    Par xender dans le forum Langage
    Réponses: 1
    Dernier message: 16/05/2006, 14h08
  2. [Sécurité] PHP mécanisme de session et include
    Par Pfeffer dans le forum Langage
    Réponses: 5
    Dernier message: 29/04/2006, 15h50
  3. [PHP-JS] menu liste // menu déroulant
    Par Empty_body dans le forum Langage
    Réponses: 29
    Dernier message: 10/01/2006, 22h49
  4. [PHP-JS] menu déroulant
    Par matbrun87 dans le forum Langage
    Réponses: 7
    Dernier message: 09/11/2005, 18h18
  5. Réponses: 8
    Dernier message: 19/10/2005, 15h06

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