Double boucle for (pour cellules de thead et cellules de tbody) inutile ou non ?
Posté : 27 mai 2015, 15:19
Bonjour à tous,
Je réalise un calendrier hebdomadaire "dynamique". Dans les th de mon thead, les jours de la semaine s'affichent (générés par mon code avec une boucle for). Aucun problème.
<table><thead><tr>
code...
boucle qui affiche '<th>lundi 12 mai</th><th>mardi 13 mai</th>' etc...
puis je ferme ma boucle for ( } ) puis je ferme ma ligne (</tr>) puis je ferme </thead>
pour passer au tbody, j'ouvre une nouvelle ligne (<tbody><tr>)
puis je recommence la même boucle (ou presque) dans laquelle je veux cette fois-ci afficher le timestamp du jour de la même colonne pour écrire mes <td>mon timestamp</td>.
enfin je ferme ma deuxième boucle for ( } ) puis ma deuxième ligne (</tr></tbody></table>).
Ma question est la suivante : ai-je réélement besoin d'écrire deux fois la quasi "même" boucle entièrement ? Je suis persuadé qu'il y a un moyen plus simple mais je sèche.
Voici mon code :
Je réalise un calendrier hebdomadaire "dynamique". Dans les th de mon thead, les jours de la semaine s'affichent (générés par mon code avec une boucle for). Aucun problème.
<table><thead><tr>
code...
boucle qui affiche '<th>lundi 12 mai</th><th>mardi 13 mai</th>' etc...
puis je ferme ma boucle for ( } ) puis je ferme ma ligne (</tr>) puis je ferme </thead>
pour passer au tbody, j'ouvre une nouvelle ligne (<tbody><tr>)
puis je recommence la même boucle (ou presque) dans laquelle je veux cette fois-ci afficher le timestamp du jour de la même colonne pour écrire mes <td>mon timestamp</td>.
enfin je ferme ma deuxième boucle for ( } ) puis ma deuxième ligne (</tr></tbody></table>).
Ma question est la suivante : ai-je réélement besoin d'écrire deux fois la quasi "même" boucle entièrement ? Je suis persuadé qu'il y a un moyen plus simple mais je sèche.
Voici mon code :
<table border="1">
<thead>
<tr>
<?php
$w = 22; // Pour la 7 ème semaine à rechercher
$y = 2015; // Pour la 7 ème semaine à rechercher
$NbJrs = 7 ; // Nombre de jours à afficher
///////////////////////////////// AFFICHAGE du thead ////////////////////////////////////////
for($i = 1; $i <= 365; $i++)
{
$week = date("W", mktime(0, 0, 0, 1, $i, $y));
if($week == $w)
{
for($d = 0; $d < $NbJrs; $d++)
{
$MonMKTIME = mktime(0, 0, 0, 1, $i+$d, $y);
$MaDate = date("Y-m-d", $MonMKTIME);
?>
<th><?php echo $MaDate; ?></th>
<?php
}
break;
}
}
?>
</tr>
</thead>
<tbody>
<tr>
<?php
///////////////////////////////// AFFICHAGE du tbody ////////////////////////////////////////
for($i = 1; $i <= 365; $i++)
{
$week = date("W", mktime(0, 0, 0, 1, $i, $y));
if($week == $w)
{
for($d = 0; $d < $NbJrs; $d++)
{
$MonMKTIME = mktime(0, 0, 0, 1, $i+$d, $y);
$MaDate = date("Y-m-d", $MonMKTIME);
$TS = strtotime($MaDate);
?>
<td data-ts="<?php echo $TS; ?>"><?php echo $TS; ?></td>
<?php
}
break;
}
}
?>
</tr>
</tbody>
</table>
Si quelqu'un pouvait me répondre, ce serait très sympa !