Bonjour,
J'ai un petit soucis depuis 2 jours.
J'essaie d'afficher un planning en vue hebdomadaire.
Normalement chaque "cellule" est le croisement entre un jour (colonne), et une heure (ligne).
Mais là, il faudrait séparer chacune de ces cellules en 4 parties, pour avoir chaque quart d'heure bien séparé.
Voici une image du résultat attendu :
http://hpics.li/48fb5f6
De tout ce que j'ai pu essayer, voici le code qui se rapproche le plus de ce que j'essaie d'obtenir :
<?php
echo ' <table>
<thead>
<tr>
<th></th>
<th>Lundi</th>
<th>Mardi</th>
<th>Mercredi</th>
<th>Jeudi</th>
<th>Vendredi</th>
<th>Samedi</th>
<th>Dimanche</th>
</tr>
</thead>
<tbody>';
for ($hour = 7; $hour <= 18; $hour++)
{
echo ' <tr class="planning-large-line">
<td>' . $hour . 'h</td>';
for ($i = 1; $i < 4; $i++)
{
echo ' <tr class="planning-small-line">';
for ($day = 1; $day <= 7; $day++)
{
echo ' <td>' . $day . '</td>';
}
echo ' </tr>';
}
echo ' <tr>';
}
echo ' </tbody>
</table>';
?>
Dans mes recherches, j'ai vu qu'il faudrait imbriquer 2 <table>
pour faire ce genre de choses,
mais je n'arrive toujours pas à ce que je voudrai...
Merci pour votre aide ;)
Bonjour,
Le plus simple est que tu fusionnes les lignes.
Essaye à partir de ca :
"rowspan" permet de fusionner des lignes, la valeur de rowspan donne le nombre de lignes à fusionner.
<table>
<tr>
<td></td>
<td>lundi</td>
<td>mardi</td>
<td>mercredi</td>
<td>jeudi</td>
<td>vendredi</td>
<td>samedi</td>
<td>dimanche</td>
</tr>
<tr>
<td rowspan="4">08h</td>
<td>08h00</td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
</tr>
<tr>
<td>08h15</td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
</tr>
<tr>
<td>08h30</td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
</tr>
<tr>
<td>08h45</td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
</tr>
<tr>
<td rowspan="4">09h</td>
<td>09h00</td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
</tr>
<tr>
<td>09h15</td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
</tr>
<tr>
<td>09h30</td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
</tr>
<tr>
<td>09h45</td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
</tr>
</table>
Hum, maintenant que tu sais à quoi doit ressembler ton code final, je pense que tu dois pouvoir améliorer ta boucle pour pouvoir générer le tableau.
Faut voir pour la conditition de création du <td rowspan="4">...
Hum...
Le gros avantage c'est que ça fonctionne !
Par contre l'inconvénient c'est que je vais devoir tout écrire à la main.
En plus, en fait chaque cellule est "cliquable", et renvoie vers une autre page, en mentionnant son jour et son heure.
Mais SURTOUT, à chaque cellule je fais appel à une fonction qui vérifie en BDD si un évênement est "réservé" à cet endroit là du planning, et en fonction de ça je lui attribue une classe, ou une autre.
Ça veut dire qu'avant d'écrire les quelques 300 lignes de codes à la main,
il faut d'abord écrire à la main 7 4 10 = 280 appels de cette fonction, et ranger chaque résultats dans 280 variables.
Et faire correspondre les bonnes variables aux bonnes cellules.
C'est tout de même très lourd,
mais comme je bloque depuis maintenant 3 jours, je vais me résoudre à faire de la sorte...
(au fond j'ai carrément honte de faire comme ça) xD
Je laisse le sujet ouvert une petite semaine pour voir si quelqu'un à une idée en utilisant les boucles.
Ça serait super !
Je te remercie en tous cas, je vais pouvoir continuer maintenant. ^^
Ah ben oui bon sang !!!
(omg) :'(
<?php
echo ' <table>
<thead>
<tr>
<th></th>
<th>Lundi</th>
<th>Mardi</th>
<th>Mercredi</th>
<th>Jeudi</th>
<th>Vendredi</th>
<th>Samedi</th>
<th>Dimanche</th>
</tr>
</thead>
<tbody>';
for ($hour = 7; $hour <= 18; $hour++)
{
echo ' <tr class="planning-large-line">
<td rowspan="5">' . $hour . 'h</td>';
for ($i = 1; $i <= 4; $i++)
{
echo ' <tr class="planning-small-line">';
for ($day = 1; $day <= 7; $day++)
{
echo ' <td>' . $day . '</td>';
}
echo ' </tr>';
}
echo ' <tr>';
}
echo ' </tbody>
</table>';
?>
Parfait.
MERCI PLJerem !