Bonjour voici
j'utilise une requete PHP pour appeler des livres qui sont dans ma base de données, ceci grâce a une boucle PHP while.
pour chaque livre j'affiche donc :
- le titre
- l'auteur
- et une quatrième de couverture
c'est la qu’intervient mon javascript
afin de cacher cette quatrième de couverture (qui peut être parfois lonnnngue)
j'ai donc créer grâce a un "span", un bouton qui me permet de masquer ou d'afficher cette quatrième de couverture

mon problème est comment faire en sorte que quand je clic le sur "le bouton afficher ou masquer" de la quatrième de couv de mon 2ème livre, ou 3ème ou autre...
ca ne referme pas celle de mon 1er livre ???
voir le résultat ici : https://clesdasie.fr/bibliotheque/?pageActuelle=2
- est-ce une histoire de code mal placé ?
- est-ce qu'il faut créer des id différentes pour toutes les quatrième de couv de mes livres ?
n'y a t'il pas un moyen simple
que feriez vous ?
merci beauuuucoup !

voici mon code :
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
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
 
<?php
// requete PHP pour lister la liste des livres
$reponse2 = $bdd->query("SELECT * 
                                                FROM livres
                                                LEFT JOIN livres_categorie
                                                ON livres.code_categorie = livres_categorie.code_categorie_livres_categorie
                                                $whereRequete
                                                ORDER BY titre
                                                ASC
                                                LIMIT $numDeDepart,$nbParPages
                                                ") or die(print_r($bdd->errorInfo()));
                                                
 
while ($donnees2 = $reponse2->fetch())
{
$titre = stripslashes ($donnees2['titre']);
$auteur = stripslashes ($donnees2['auteur']);
$quatre_de_couv = stripslashes($donnees2['4couv']);
?>
<div class="livre">
		<?php
                        
                        echo '
                        <div class="texte-liste-livre">
                                <h3>'.$titre.'</h3>
                                <p>Auteur : <strong>'.$auteur.'</strong></p>
                                <p>Quatrième de couverture :</p>
                                <span class="bouton" id="bouton_texte" onclick="javascript:afficher_cacher(\'texte\');">Afficher le texte</span>
                                        <div id="texte" class="texte">
                                                <p class="quatreDeCouv">'.$quatre_de_couv.'</p>
                                        </div>';
                        echo '</div>';
                ?>
		<script type="text/javascript">
			function afficher_cacher(id)
			{
				if(document.getElementById(id).style.display=="none") // si il est cacher j'utilise le double "==" pour lire sont etat
				{
					document.getElementById(id).style.display="block"; // le rendre visible sous forme de block en lui attribuant la valeur avec un simple "="
					document.getElementById('bouton_'+id).innerHTML='Cacher le texte';
				}
				else
				{
					document.getElementById(id).style.display="none"; // sinon le cacher, donc il apparaitera toujours de base caché sauf si je clic sur le bouton
					document.getElementById('bouton_'+id).innerHTML='Afficher le texte';
				}
				return true;
			}    
			afficher_cacher('texte'); // j'appelle la fonction qui sera executée
			// j'ai appelé la fonction afficher_cacher à la fin du texte c'est simplement pour que dès le chargement de la page, le texte soit caché.
		</script>
</div><!-- class="livre" -->
<?php
}
?>