Probleme avec un menu déroulant

SeNeO64 Messages postés 28 Date d'inscription vendredi 6 mai 2005 Statut Membre Dernière intervention 22 août 2007 - 3 avril 2007 à 13:10
SeNeO64 Messages postés 28 Date d'inscription vendredi 6 mai 2005 Statut Membre Dernière intervention 22 août 2007 - 3 avril 2007 à 16:50
Me revoila.

Cette fois-ci, j'ai un chti probleme avec un menu déroulant.
Je commence par afficher des rubriques. En cliquant sur celle-ci, j'affiche les sous rubriques correspondantes. Jusque la tout marche bien.
Je rajoute des test aux sous rubriques, et j'aimerai les afficher en cliquant sur les sous-rubriques.
Le problème c'est qu'en cliquant, la fonction montre qui permet d'afficher l'element correspondant a l'id fournit en paramètre est appelé deux fois, une fois avec l'id de la sous-rubrique et une autre fois avec l'id de la rubrique, ce qui a mon avis empeche l'affichage des test.
En gardant les sous-rubriques affichées dés le départ et en enlevant l'evenement onclick, l'affichage/masquage des test fonctionnent correctement.

et maintenant je vous met le code  
<script type= "text/javascript">
<!--
window.onload=montre;
function montre(id) {
alert("test"+id);
var d = document.getElementById(id);\n";
    $rubrique=getRubrique();
    foreach($rubrique as $rub){
        $ssrubrique=getSousRubrique($rub['libelle']);
        foreach($ssrubrique as $ssrub){
        echo "if (document.getElementById('".$ssrub['libelle']."')) {document.getElementById('".$ssrub['libelle']."').style.display='none';}\n";    
        }
        echo "    if (document.getElementById('".$rub['libelle']."')) {document.getElementById('".$rub['libelle']."').style.display='none';}\n";
    }
    
    echo "if (d) {d.style.display='block'; alert("test trouvé");}
}
//-->
</script>";
?>

</head>

    
    <?php
    $rubrique=getRubrique();
    foreach($rubrique as $rub){
        echo "
".$rub['libelle']."

\n";
        echo "    
\n";    
        $ssrubrique=getSousRubrique($rub['libelle']);
        foreach($ssrubrique as $ssrub){
            echo "        
".$ssrub['libelle']."

\n";
            $test=getTest($ssrub['libelle']);
            echo "            
\n";
            foreach($test as $tes){
                echo "                
".$tes['test']."

\n";
            }
            echo "            
\n";
            echo "        
\n";
        }
        echo "    
\n";
        echo"
\n";
    }    
 
    ?>
 
            <!--
                <?php
    /*$rubrique=getRubrique();
    foreach($rubrique as $rub){
        echo \" *  ".$rub['libelle']."\n";
            echo " :  \n";
                echo \"\n\";
                $ssrubrique =getSousRubrique($rub['libelle']);
                foreach($ssrubrique as $ssrub){
                    echo \"<li>\".$ssrub['libelle'].\"</li>\n\";
                    }
                    echo \"<li>Ajouter</li>\";
                echo \"\n\";
            echo \"\n\";
    }    */
    ?>
-->

           

3 réponses

nickadele Messages postés 1251 Date d'inscription mercredi 7 août 2002 Statut Modérateur Dernière intervention 10 avril 2013
3 avril 2007 à 14:41
Bonjour,

difficil de t'aider si tu nous balance ton code coté serveur.
Pour y voir plus claire, peux-tu mettre le code résultat de ta page.

Nickadele
----------------------------------------------
non, ma belle ne s'appel pas Adèle
0
SeNeO64 Messages postés 28 Date d'inscription vendredi 6 mai 2005 Statut Membre Dernière intervention 22 août 2007
3 avril 2007 à 14:56
bien vu,
et voici donc le code coté client ;)

<script type="text/javascript">
<!--
window.onload=montre;
function montre(id) {
alert("test"+id);
var d = document.getElementById(id);
if (document.getElementById('bidon')) {document.getElementById('bidon').style.display='none';}
if (document.getElementById('wap')) {document.getElementById('wap').style.display='none';}
if (document.getElementById('Réception sms et réponse')) {document.getElementById('Réception sms et réponse').style.display='none';}
if (document.getElementById('formulaire')) {document.getElementById('formulaire').style.display='none';}
if (document.getElementById('web')) {document.getElementById('web').style.display='none';}
if (d) {d.style.display='block'; alert("test trouvé");}
}
//-->
</script>
</head>

<body>

<div onclick="javascript:montre('wap');"><p>wap</p>

<div id="wap">
<div onclick="javascript:montre('bidon');"><p>bidon</p>
<div id="bidon">
</div>
</div>
</div>
</div>
<div onclick="javascript:montre('web');"><p>web</p>
<div id="web">

<div onclick="javascript:montre('Réception sms et réponse');"><p>Réception sms et réponse</p>
<div id="Réception sms et réponse">
</div>
</div>
<div onclick="javascript:montre('formulaire');"><p>formulaire</p>
<div id="formulaire">
</div>
</div>

</div>
</div>
0
SeNeO64 Messages postés 28 Date d'inscription vendredi 6 mai 2005 Statut Membre Dernière intervention 22 août 2007
3 avril 2007 à 16:50
Bon c'est bon j'ai résolu mon problème, j'ai utilisé un script déjà présent sur ce forum.
Par contre je suis toujours preneur d'explications quand à mon problème sur le morceau de code que je vous ai montré.
Merci.
0
Rejoignez-nous