Afficher ou masquer

Mammouth du PHP | 620 Messages

10 avr. 2008, 09:45

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.
Modifié en dernier par fabrice88250 le 10 avr. 2008, 09:58, modifié 2 fois.

Mammouth du PHP | 1353 Messages

10 avr. 2008, 09:55

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...
Tell me and I forget. Teach me and I remember. Involve me and I learn.

Mammouth du PHP | 620 Messages

10 avr. 2008, 09:58

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