par
elegman » 14 mars 2005, 13:23
Bonjour a tous, je débute en php....
voila j ai fai un calendrier mais le problème est que dès que je veux changer le mois du calendrier , celui-ci ne se met pas à jour, je ne comprends pas très bien pour quoi...
Si quelqu'un pouvait m'éclairer....
Merci pour votre aide!!
Elegman
voici le code :
<body>
<?php
/**************************************************************************************************/
//calendrier
for($i=1;$i>=date("t");$i++)//t-->nombre de jours dans le mois
//echo $i;
{
date("w", mktime(0,0,0,date("n"), 1, date("Y")));
echo "<form method='post' action='PHP_SELF'>";
echo '<select name="instant" size="1">';
$date_inf= mktime(0,0,0,date("n")-6, date("j"), date("Y"));
$date_sup= mktime(0,0,0,date("n")+12, date("j"), date("Y"));
$mois_franc=array('', 'janvier', 'février', 'mars', 'avril', 'mai', 'juin', 'juillet', 'âout', 'septembre', 'octobre', 'novembre', 'decembre');
for ($variable_mois=-6,$variable_tableau=date("n",$date_inf);$variable_mois<=12;$variable_mois++,$variable_tableau++)
{
if($variable_tableau==13){
$variable_tableau=1;
}
$chronos=mktime(0,0,0,date("n")+$variable_mois, date("j"),date("Y"));
echo "<option value=\"$chronos\"";
if(!$variable_mois){
echo ' SELECTED';
}
$mois_courant=$mois_franc["$variable_tableau"];
$an_courant=date("Y", $chronos);
echo ">$mois_courant ${an_courant}</option>";
}
if(!$instant){
$instant=mktime(0,0,0,date("n"), date("j"), date("Y"));
}
$mois=date("n","$instant");
$mois_en_franc=$mois_franc["$mois"];
$annee =date("Y","$instant");
$taille_calendrier="40%";
echo "<table width=$taille_calendrier><tr><td colspan=\"7\"> {$_POST['$mois_courant $annee']} </td></tr>";
echo "<tr><td>lundi</td>
<td>mardi</td>
<td>mercredi</td>
<td>jeudi</td>
<td>vendredi</td>
<td>samedi</td>
<td>dimanche</td>
</tr>";
for ($jours=0,$cellules=1;$cellules<36;$cellules++)
{
$jour_semaine=$cellules%7;
if ($jour_semaine==1){
echo "<tr>";
}
//la ligne commence le lundi
if(date("j")==$jours && date("n")==$mois && date("Y")==$annee){
echo "<td align=\"center\" bgcolor=\#FFCCCC\">";
}
/*cette condition s'interroge si le jour est aujourd'hui et dans ce cas la case est colorée*/
else {
echo "<td align=\"center\" bgcolor=\#CCCCCC\">";
}
if($cellules<8 && $jour_semaine==date("w",mktime(0,0,0,$mois,1,$annee))){
$jours=1;
}
//cette condition initialise la variable$jours
if($jours>0 && $jours<=date("t",$instant)){
echo $jours;
}
else {
echo " ";
}
echo "</td>";
if ($jour_semaine==0){
echo"</tr>";
}
//le dimanche finit a la ligne
if($jours>0){
$jours++;
}
if (date("t",$instant)==$jours && $jour_semaine==0){
break;
}
/*on prévoit le cas ou un mos de février de 28 jours commence un lundi, le breack evite d'afficher un ligne de cases vides*/
}
echo "</table></form>";
}
?>
</body>
Bonjour a tous, je débute en php....
voila j ai fai un calendrier mais le problème est que dès que je veux changer le mois du calendrier , celui-ci ne se met pas à jour, je ne comprends pas très bien pour quoi...
Si quelqu'un pouvait m'éclairer....
Merci pour votre aide!!
Elegman
voici le code :
<body>
<?php
/**************************************************************************************************/
//calendrier
for($i=1;$i>=date("t");$i++)//t-->nombre de jours dans le mois
//echo $i;
{
date("w", mktime(0,0,0,date("n"), 1, date("Y")));
echo "<form method='post' action='PHP_SELF'>";
echo '<select name="instant" size="1">';
$date_inf= mktime(0,0,0,date("n")-6, date("j"), date("Y"));
$date_sup= mktime(0,0,0,date("n")+12, date("j"), date("Y"));
$mois_franc=array('', 'janvier', 'février', 'mars', 'avril', 'mai', 'juin', 'juillet', 'âout', 'septembre', 'octobre', 'novembre', 'decembre');
for ($variable_mois=-6,$variable_tableau=date("n",$date_inf);$variable_mois<=12;$variable_mois++,$variable_tableau++)
{
if($variable_tableau==13){
$variable_tableau=1;
}
$chronos=mktime(0,0,0,date("n")+$variable_mois, date("j"),date("Y"));
echo "<option value=\"$chronos\"";
if(!$variable_mois){
echo ' SELECTED';
}
$mois_courant=$mois_franc["$variable_tableau"];
$an_courant=date("Y", $chronos);
echo ">$mois_courant ${an_courant}</option>";
}
if(!$instant){
$instant=mktime(0,0,0,date("n"), date("j"), date("Y"));
}
$mois=date("n","$instant");
$mois_en_franc=$mois_franc["$mois"];
$annee =date("Y","$instant");
$taille_calendrier="40%";
echo "<table width=$taille_calendrier><tr><td colspan=\"7\"> {$_POST['$mois_courant $annee']} </td></tr>";
echo "<tr><td>lundi</td>
<td>mardi</td>
<td>mercredi</td>
<td>jeudi</td>
<td>vendredi</td>
<td>samedi</td>
<td>dimanche</td>
</tr>";
for ($jours=0,$cellules=1;$cellules<36;$cellules++)
{
$jour_semaine=$cellules%7;
if ($jour_semaine==1){
echo "<tr>";
}
//la ligne commence le lundi
if(date("j")==$jours && date("n")==$mois && date("Y")==$annee){
echo "<td align=\"center\" bgcolor=\#FFCCCC\">";
}
/*cette condition s'interroge si le jour est aujourd'hui et dans ce cas la case est colorée*/
else {
echo "<td align=\"center\" bgcolor=\#CCCCCC\">";
}
if($cellules<8 && $jour_semaine==date("w",mktime(0,0,0,$mois,1,$annee))){
$jours=1;
}
//cette condition initialise la variable$jours
if($jours>0 && $jours<=date("t",$instant)){
echo $jours;
}
else {
echo " ";
}
echo "</td>";
if ($jour_semaine==0){
echo"</tr>";
}
//le dimanche finit a la ligne
if($jours>0){
$jours++;
}
if (date("t",$instant)==$jours && $jour_semaine==0){
break;
}
/*on prévoit le cas ou un mos de février de 28 jours commence un lundi, le breack evite d'afficher un ligne de cases vides*/
}
echo "</table></form>";
}
?>
</body>