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

JavaScript Discussion :

[DOM] Sous-menu ouvert au chargement d'une page php


Sujet :

JavaScript

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    37
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 37
    Par défaut [DOM] Sous-menu ouvert au chargement d'une page php
    Bonjour,

    J'ai une page index.php qui appelle mon menu et mon contenu par include. Cette page contient dans son header les appels aux scripts JS. Lorsque je charge une page1.inc.php depuis le menu dans mon index.php, celui-ci se referme puisque que je recharge la page.
    Mon menu est un fichier php qui appelle un fichier xml :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    <?php
    $XmlData = "tree2.xml";
    $XslData = "xmlTree.xsl";
    $doc = new DOMDocument();
    $xsl = new XSLTProcessor();
     
    $doc->load($XslData);
    $xsl->importStyleSheet($doc);
     
    $doc->load($XmlData);
    echo $xsl->transformToXML($doc);
    ?>
    Une fois chargé dans la page, le code html ressemble à cet extrait :

    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
     
    <div id="tree">
     
    	<span class="trigger" onClick="
    showBranch('car_name_folder');
    "><img src="closed.gif" id="Icar_name_folder">car_name_folder<br></span><span class="branch" id="car_name_folder">
     
            <span class="trigger" onClick="
    showBranch('car.ini');
    "><img src="closed.gif" id="Icar.ini">car.ini<br></span><span class="branch" id="car.ini">
     
     
            	<span class="trigger" onClick="
    showBranch('car');
    "><img src="closed.gif" id="Icar">car<br></span><span class="branch" id="car">
     
           			<a href="index.php?&amp;p=page1">name=</a>
    [...]
    Le script JS qui permet d'utiliser le menu est celui-ci :

    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
     
    var openImg = new Image();
    openImg.src = "open.gif";
    var closedImg = new Image();
    closedImg.src = "closed.gif";
     
    function showBranch(branch){
    	var objBranch = document.getElementById(branch).style;
    	if(objBranch.display=="block")
    		objBranch.display="none";
    	else
    		objBranch.display="block";
    	swapFolder('I' + branch);
    }
     
    function swapFolder(img){
    	objImg = document.getElementById(img);
    	if(objImg.src.indexOf('closed.gif')>-1)
    		objImg.src = openImg.src;
    	else
    		objImg.src = closedImg.src;
    }
    Je n'arrive pas à faire passer un display=block a la fonction JS (qui n'est pas de moi : devx.com) afin de pouvoir laisser mon menu développé lorsque je charge une page avec un include.

    Dans ma page de contenu (en php) j'ai essayé de la façon suivante :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <div id="content" onload="showBranch('nom_de_la_branch');">
    Mais ça ne donne évidemment rien. Est-ce que ça peut être du au fait que mon contenu est chargé après le menu ?

    Merci d'avance pour vos lumières !

  2. #2
    Rédacteur
    Avatar de marcha
    Homme Profil pro
    Développeur Web
    Inscrit en
    Décembre 2003
    Messages
    1 571
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : Suisse

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Décembre 2003
    Messages : 1 571
    Par défaut
    Salut,

    Le code javascript qui manipule des éléments DOM doit être exécuté
    après que ceux-ci soient construits.

    Soit par exemple sur l'évènement window.onload (qui se produit souvent
    un peu trop tard pour ce genre d'usage)

    Soit en lançant l'ordre depuis un script placé après les éléments DOM
    concerné. (par exemple après ton menu, ou en bas de page avant </body>)

    Si tu utilises un framework comme JQuery, document ready est idéal pour ce
    genre d'appel.

    Quoi qu'il en soit, <div onload='...'> n'est pas un évènement existant

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    37
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 37
    Par défaut
    Citation Envoyé par marcha Voir le message
    Salut,

    Le code javascript qui manipule des éléments DOM doit être exécuté
    après que ceux-ci soient construits.

    Soit par exemple sur l'évènement window.onload (qui se produit souvent
    un peu trop tard pour ce genre d'usage)

    Soit en lançant l'ordre depuis un script placé après les éléments DOM
    concerné. (par exemple après ton menu, ou en bas de page avant </body>)

    Si tu utilises un framework comme JQuery, document ready est idéal pour ce
    genre d'appel.

    Quoi qu'il en soit, <div onload='...'> n'est pas un évènement existant
    Merci pour ta réponse

    Bon, je vais voir ce que je peux faire pour lancer un script après les éléments DOM. Je n'utilise pas de framework, juste un éditeur de texte…

    Et je vais donc rayer ce div onload !

  4. #4
    Rédacteur
    Avatar de marcha
    Homme Profil pro
    Développeur Web
    Inscrit en
    Décembre 2003
    Messages
    1 571
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : Suisse

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Décembre 2003
    Messages : 1 571
    Par défaut
    Citation Envoyé par citronized Voir le message
    Je n'utilise pas de framework, juste un éditeur de texte…
    par framework j'entendais une librairie (code javascript dans ton cas, écrite par
    des tiers et lié dans tes pages, par exemple, JQuery ou Prototype)

    Je crois que tu pensais que je parlais d'un IDE (Integrated Developement Environement),
    outil qui facilite le développement, ce qui n'est pas la même chose.

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    37
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 37
    Par défaut
    Citation Envoyé par marcha Voir le message
    par framework j'entendais une librairie (code javascript dans ton cas, écrite par
    des tiers et lié dans tes pages, par exemple, JQuery ou Prototype)

    Je crois que tu pensais que je parlais d'un IDE (Integrated Developement Environement),
    outil qui facilite le développement, ce qui n'est pas la même chose.
    Ok, je comprends mieux Mais c'est pas un peu lourd d'intégrer ce type de librairie juste pour ce que je dois faire ? D'autant que j'ai du mal à saisir comment ça pourrait fonctionner…

  6. #6
    Rédacteur
    Avatar de marcha
    Homme Profil pro
    Développeur Web
    Inscrit en
    Décembre 2003
    Messages
    1 571
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : Suisse

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Décembre 2003
    Messages : 1 571
    Par défaut
    Il n'y a pas besoins d'intégrer ce genre de librairie, c'était juste pour info.

Discussions similaires

  1. DOM Mettre display=none au chargement d'une page
    Par RicardoBxl dans le forum Général JavaScript
    Réponses: 7
    Dernier message: 12/02/2013, 09h11
  2. chargement d'une page php grace a onclick
    Par zaki chan dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 19/01/2010, 14h39
  3. [Dojo] Chargement d'une page php
    Par Lulu_n10 dans le forum Bibliothèques & Frameworks
    Réponses: 1
    Dernier message: 05/05/2009, 18h30
  4. Déclencher le chargement d'une page php
    Par Freedolphin dans le forum Langage
    Réponses: 2
    Dernier message: 03/04/2009, 11h26
  5. Arreter chargement d'une page ? (stop() ne marche pas sous IE)
    Par Merfolk dans le forum Général JavaScript
    Réponses: 8
    Dernier message: 23/01/2007, 15h19

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