Bonjour,

J'essaie de faire un calendrier qui doit récupérer une variable f grace a "for" . Ma variable est bien recuper le problème c'est que mon calendrier tableau ne se crée pas correctement il ne me crée une multitude de <td> sans fermer le <tr> alors qu'il devrait fermer le <tr> des que 'lon arrive à la fin de la semaine.

Voici le code de ma fonction calendrier
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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
 
function calendrier($mois,$annee) //renvoi un calendrier
	{
	//variables
	$date = date('Y-m-01');
    $moi = date('n');
    $year = date('Y');
	$ts = mktime(1,1,1,$mois,1,$annee); //Recuperation du timestamp du numero du jour de base cad le numero du jour du premier jour du mois ouf !
	$tab = getdate($ts); //Recuperation du numero du jour de base, le numero du jour du premier jour du mois
	$j = 1 ; //premier jour 	
	$nbjour = date('t',$ts) ;//nombre de jour dans le mois
	$nom_mois = array('Janvier','Février','Mars','Avril','Mai','Juin','Juillet','Août','Septembre','Octobtre','Novembre','Décembre');//Nom des moins in French
	//cette sequence corrige le numero du dimanche. PHP donne 0, dans notre cas 7 est préférable, donc..
	if($tab['wday'] == 0)
		{
		$dp = 7 ;
		}
		else
		{
		$dp = $tab['wday'] ;
		}
		 $moiprochain = date('Y-m-d',strtotime($date . '+1 month'));
        $moiapresedent = date('Y-m-d',strtotime($date . '-1 month'));
	//Affichage de l'entête du calendrier
	 echo '<table width="100%" border="1"><tr><td align="center" colspan="7" class="calendrier-mois"><a href="#" onclick="updatelistdate(\''.$moiapresedent.'\')"><b><</b></a> <b>'.$nom_mois[$mois-1].' '.$year.'</b> <a  href="#" onclick="updatelistdate(\''.$moiprochain.'\')"><b>></b></a></td></tr>';
	echo  "<tr><td>Lun</td><td>Mar</td><td>Mer</td><td>Jeu</td><td>Ven</td><td>Sam</td><td>Dim</td></tr>";
	//Affichage du calendrier
	for($i=1;$i<=42;$i++)
		{
		if($i % 7 == 1 ) //si il reste un, on commence forcement une nouvelle ligne	
			{
			echo "<tr>";
			}
		for($f = $date ; $f < $moiprochain ;$f = date('Y-m-d',strtotime($f . '+1 day'))) {
		if(($dp <= $i)&&($j <= $nbjour))//si nous sommes apres le numero du premier jour et que nous n avons pas
			{//passé le 30 ou 31  
 
			echo '<td><a href="#" onclick="updatedate(\''.$f.'\')">'.$j.'</a></td>' ; //on affiche
 
			$j++;
			} 
 
			else
			{
			echo "<td></td>"; //sinon case vide
			}
	} 
		if($i % 7 == 0 ) //si il ne reste rien, cad des multiples de 7, on se retrouve forcement en fin de ligne	
			{
			echo "</tr>";
			}
		}
 
		echo "</table>"; //affichage de la fin du tableau
 
		//calcul des positions des mois
 
 
		//barre de navigation	
 
	} //Fin fonc
D'avance merci de vote aide

<config>Mac OS X / Safari 533.19.4</config>