<?php
// Liste des jours fériés à exclure (exemple simplifié)
$jours_feries = [
'2025-01-01', '2025-04-06', '2025-05-01', '2025-05-08', '2025-05-29',
'2025-06-08', '2025-07-14', '2025-08-15', '2025-11-01', '2025-12-25'
];
// Générer les dates de janvier à décembre 2025
$startDate = strtotime("2025-01-01");
$endDate = strtotime("2025-12-31");
$dates = [];
for ($date = $startDate; $date <= $endDate; $date = strtotime("+1 day", $date)) {
$dateStr = date("Y-m-d", $date);
if (!in_array($dateStr, $jours_feries)) {
$dates[] = $dateStr;
}
}
// Diviser les dates par mois pour appliquer une couleur de fond différente
$dates_par_mois = [];
foreach ($dates as $date) {
$mois = date("m", strtotime($date));
$dates_par_mois[$mois][] = $date;
}
// Affichage du tableau
?>
<!DOCTYPE html>
<html lang="fr">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Tableau des dates de 2025</title>
<link href="https://stackpath.bootstrapcdn.com/bootstrap/4.5.2/css/bootstrap.min.css" rel="stylesheet">
<style>
.month-color-1 { background-color: #f0f8ff; }
.month-color-2 { background-color: #faebd7; }
.month-color-3 { background-color: #f5f5dc; }
/* Ajoutez plus de couleurs si nécessaire pour chaque mois */
</style>
</head>
<body>
<div class="container mt-5">
<button id="addRowBtn" class="btn btn-primary mb-3">Add</button> <!-- Bouton Add -->
<table class="table table-bordered" id="datesTable">
<thead>
<tr>
<th>Titre</th>
<?php foreach ($dates_par_mois as $mois => $mois_dates): ?>
<?php foreach ($mois_dates as $date): ?>
<th><?= date("d/m/Y", strtotime($date)) ?></th>
<?php endforeach; ?>
<?php endforeach; ?>
</tr>
</thead>
<tbody>
<tr>
<td>Jours</td>
<?php foreach ($dates_par_mois as $mois => $mois_dates): ?>
<?php foreach ($mois_dates as $date): ?>
<td class="table_date month-color-<?= $mois ?>" data-date="<?= $date ?>" data-value="0" style="cursor: pointer;">0</td>
<?php endforeach; ?>
<?php endforeach; ?>
</tr>
</tbody>
</table>
</div>
<script src="https://code.jquery.com/jquery-3.6.0.min.js"></script>
<script>
$(document).ready(function(){
// Action de clic sur les cellules pour modifier leur valeur
$(".table_date").click(function(){
var currentValue = $(this).data("value");
if (currentValue == "0") {
$(this).data("value", "1");
$(this).text("1");
$(this).css("background-color", "#90EE90"); // Couleur pour '1'
} else {
$(this).data("value", "0");
$(this).text("0");
$(this).css("background-color", ""); // Réinitialiser la couleur de fond
}
});
// Ajouter une nouvelle ligne lors du clic sur le bouton Add
$("#addRowBtn").click(function(){
var newRow = "<tr>";
newRow += "<td>Jours</td>"; // Colonne 'Jours'
// Ajouter une cellule pour chaque date
<?php foreach ($dates_par_mois as $mois => $mois_dates): ?>
<?php foreach ($mois_dates as $date): ?>
newRow += '<td class="table_date month-color-<?= $mois ?>" data-date="<?= $date ?>" data-value="0" style="cursor: pointer;">0</td>';
<?php endforeach; ?>
<?php endforeach; ?>
newRow += "</tr>";
// Ajouter la nouvelle ligne à la fin du tableau
$("#datesTable tbody").append(newRow);
});
});
</script>
</body>
</html>