Page 1 sur 1

Afficher ou masquer

Posté : 10 avr. 2008, 09:45
par fabrice88250
Bonjour,
J’extrais de ma base SQL des questions réponses que je veux afficher sur mon site.
Pour l'affichage je n'ai pas de problème les questions et les réponses apparaissent bien a l'écran.

Maintenant je voudrais masquer les réponses pour ne pas polluer l'affichage de la page et les faire apparaitre que si l'on clique sur "+/-" (par exemple)

Pour ce, j'utilise le script suivant :


Dans le Head :

Code : Tout sélectionner

<script> function visibilite(thingId) { var targetElement; targetElement = document.getElementById(thingId) ; if (targetElement.style.display == "none") { targetElement.style.display = "" ; } else { targetElement.style.display = "none" ; } } </script>
Et dans mon body :

Code : Tout sélectionner

<p>Question <?php echo ''.$data['FaqID'].'';?> : <?php echo ''.$data['FaqAsk'].'';?></p> <a href="javascript:visibilite('divid');">+/-</a> <div id="divid" style="display:none;"><p>Réponse : <?php echo ''.$data['FaqReponse'].'';?></p></div> <p>
Le code ne fonctionne qu’à moitié car effectivement les réponses sont bien cachées mais si je clique sur "+/-" c'est toujours la tout première réponse de haut de page qui s'affiche donc si quelqu'un peut me donné un coup de main sa serra pas de refus.

Posté : 10 avr. 2008, 09:55
par guilt92
Bonjour,

Il te faut donner une id dynamique à tes différents blocs. Si tous les blocs réponses ont la même id ca pourra pas marcher.

Par exemple si tu as une valeur $i qui s'incrémente à chaque tour de boucle tu peux faire quelque chose comme :
<?php $i++;?>
<p>Question <?php echo ''.$data['FaqID'].'';?> : <?php echo ''.$data['FaqAsk'].'';?></p> 
<a href="javascript:visibilite('divid_<?php echo $i;?>');">+/-</a> 
<div id="divid_<?php echo $i;?>" style="display:none;"><p>Réponse : <?php echo ''.$data['FaqReponse'].'';?></p></div> 
<p>
Les but étant d'avoir divid_1, divid_2... associé aux différentes réponses pour faire apparaitre/disparaitre le bon div...

Posté : 10 avr. 2008, 09:58
par fabrice88250
C'est bon je me suis autocorrigé.
Je met la réponse dans ma question sa pourra peut etre servir a quelqu'un

Code : Tout sélectionner

<p>Question <?php echo ''.$data['FaqID'].'';?> : <?php echo ''.$data['FaqAsk'].'';?></p> <a href="javascript:visibilite('<?php echo ''.$data['FaqID'].'';?>');">+/-</a> <div id="<?php echo ''.$data['FaqID'].'';?>" style="display:none;"><p>Réponse : <?php echo ''.$data['FaqReponse'].'';?></p></div> <p>
Comme ça sa fonctionne mieu