Bonjour à tous,
Toujours en quête d'amélioration, je cherche le moyen d'afficher/masquer du contenu à l'aide du script ci-dessous.
Je précise que le script fonctionne, mais pas à 100%.
En fait quand je clique sur le "+" du premier élément, il affiche le contenu pour ce premier enregistrement. => a priori c'est correct.
Par contre je clique sur le "+" du second enregistrement et là, le script est en erreur car il m'affiche le contenu du 1er enregistrement sans trouver celui du 2ème.
2 petites images valent mieux que de longues explications:
Le premier est correct :
Pas correct:
On voit que j'ai cliqué sur le second et il m'affiche le premier
Voici le codeEn vous remerciant pour l'aide.
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
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89 <body> <!-- Le JS... --> <script type="text/javascript"> function toggle_div(bouton, id) { // On déclare la fonction toggle_div qui prend en param le bouton et un id var div = document.getElementById(id); // On récupère le div ciblé grâce à l'id if(div.style.display=="none") { // Si le div est masqué... div.style.display = "block"; // ... on l'affiche... bouton.innerHTML = "-"; // ... et on change le contenu du bouton. } else { // S'il est visible... div.style.display = "none"; // ... on le masque... bouton.innerHTML = "+"; // ... et on change le contenu du bouton. } } </script> <table> <tbody> <?php include("../../org/folder/data.php"); include("../../org/folder/connexion.php"); function ClassDate($date) { $now = date('Y-m-d'); if ($date < $now) { return 'past'; } elseif ($date > $now) { return 'futur'; } else { return 'today'; } } $next = TRUE; $sql = "SELECT no,lieu, description, contact, date_debut, date_format(date_debut, '%d.%m.%Y') AS date FROM agenda ORDER by date_debut ASC "; $req = mysql_query($sql); $i = 0; $c = 0; while ($row= mysql_fetch_assoc($req)) { $ClassDate = ClassDate($row['date_debut']); if ($ClassDate == 'futur' && $next == TRUE) { $ClassDate = 'next'; $next = FALSE; } $row['ClassDate'] = $ClassDate; $data[] = $row; } for ($i = 0; $i <= 10; $i++) { if (!isset($data[$i])) { break; } else { ?> <tr> <td> <div class=" <?php echo $data[$i]['ClassDate'];?>"> <button type="button" style="background:none; border:hidden" onclick="toggle_div(this,'subinfo');"><h7>+</h7></button></div></td> <td> <?php echo htmlspecialchars($data[$i]['lieu']);?><div id="subinfo" style="display:none;"><?php echo $data[$i]['description'];?></div></td> <td> <?php echo htmlspecialchars($data[$i]['date']);?></td> <?php $j = $i + 11; if (isset($data[$j])) { ?> <td><div class="<?php echo $data[$j]['ClassDate'];?>"> <button type="button" style="background:none; border:hidden" onclick="toggle_div(this,'subinfo');"><h7>+</h7></button> </div> </td> <td> <?php echo htmlspecialchars($data[$j]['lieu']);?> </td> <td> <?php echo htmlspecialchars($data[$j]['date']);?> </td> <?php } else { echo '<td></td><td></td></tr>'; } } } ?> </tbody> </table> ![]()
Partager