initialisation div caché avec ff mais pas avec ie

Eléphanteau du PHP | 25 Messages

15 juin 2007, 15:38

Bonjour, voici mon probleme.
J'affiche un lexique tiré d'une BDD. J'utilise scipt.aculo pour faire apparaitre/disparaitre la définition. Malheureusement, à l'initialisation, les div ne disparaissent pas avec ie, avec ff, ca marche. Voici le bout de code util de la page:

Code : Tout sélectionner

<body> <div id="conteneur"> <div id="en_tete"> <h1></h1> </div> <h2>Lexique</h2> <div id="contenu"> <?php afficheLexique(); ?> </div> <!-- liste imbriquée de liens qui fera office de menu --> <div id="gauche"> <?php getMenuByUtil($loginOK,$monUtil); ?> </div> <div id="pied_de_page"> </div> </div> <script type="text/javascript"> function afficheId(baliseId) { if (document.getElementById && document.getElementById(baliseId) != null) { Effect.SlideDown(baliseId, {duration:1}); } } function cacheId(baliseId) { if (document.getElementById && document.getElementById(baliseId) != null) { Effect.SlideUp(baliseId, {duration:1}); } } // si JavaScript est disponible, cache le contenu dès le // chargement de la page. Sans JavaScript, le contenu sera // affiché. var nombre_enfant=document.getElementById("def_lexique").childNodes.length; for (var i = 0; i < nombre_enfant ; i++) { cacheId(document.getElementById("def_lexique").childNodes[i].getAttribute("id")); } </script> </body>
Voici la fonction afficheLexique():

Code : Tout sélectionner

function afficheLexique(){ connexion($cnx); $sql="SELECT * FROM lexique ORDER BY terme"; $prem_lettre='A'; if($resultat=mysqli_query($cnx,$sql)){ $ligne = mysqli_fetch_row($resultat); $prem_lettre = substr($ligne[1], 0, 1); $prem_lettre = strtoupper($prem_lettre); printf('<div id = "def_lexique">'); printf('<p class="lettre">%s</p>',$prem_lettre); printf('<a href="javascript:afficheId(\'%s\')">%s</a>',$ligne[0],$ligne[1]); printf('<div id="%s">%s <br/><a href="javascript:cacheId(\'%s\');">Fermer</a></div><br/>',$ligne[0],nl2br($ligne[2]),$ligne[0]); while($ligne = mysqli_fetch_row($resultat)){ $prem_lettre_inter=substr($ligne[1], 0, 1); $prem_lettre_inter = strtoupper($prem_lettre_inter); if($prem_lettre!=$prem_lettre_inter){ $prem_lettre=$prem_lettre_inter; printf('<p class="lettre">%s</p>',$prem_lettre); } printf('<a href="javascript:afficheId(\'%s\')">%s</a>',$ligne[0],$ligne[1]); printf('<div id="%s">%s <br/><a href="javascript:cacheId(\'%s\');">Fermer</a></div><br/>',$ligne[0],nl2br($ligne[2]),$ligne[0]); } printf('</div>'); mysqli_free_result($resultat); mysqli_close($cnx); } }
Voila tout. Merci