Double boucle for (pour cellules de thead et cellules de tbody) inutile ou non ?

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : Double boucle for (pour cellules de thead et cellules de tbody) inutile ou non ?

Re: Double boucle for (pour cellules de thead et cellules de tbody) inutile ou non ?

par tof73 » 27 mai 2015, 17:57

tu peux faire une seule boucle, mais au lieu d'écrire directement ce que tu veux afficher, tu mets le contenu du th dans une variable, celui du tbody dans une autre; et une fois sorti de la boucle, tu affiches tout.

Re: Double boucle for (pour cellules de thead et cellules de tbody) inutile ou non ?

par Saian » 27 mai 2015, 15:25

Salut si tu veux faire le tout en une boucle, il faut alors laisser tomber le tableau et faire plutôt avec d'autres balises (div, span, ul, li, au choix) et du float left.

EDIT
Enfin du peux garder le tableau mais dans ce cas oublie la notion de thead et tbody car dans chaque case tu devras mettre les 2 lignes (donc deux div ou autre).

Il y a aussi la possibilité de sortir les donnés au format json et de construire le tableau en javascript mais ça simplifie pas vraiment. ^^

Double boucle for (pour cellules de thead et cellules de tbody) inutile ou non ?

par Nino31290 » 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 :
<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 !