2 pièce(s) jointe(s)
Afficher/masquer du contenu
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 :Pièce jointe 155866
Pas correct: Pièce jointe 155867
On voit que j'ai cliqué sur le second et il m'affiche le premier
Voici le code
Code:
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> |
En vous remerciant pour l'aide. ;)