Bonjour,
Je suis débutant et j'utilise aussi le script MyCalendar que j'ai un peu modifié pour entrer dans un formulaire deux dates, l'une d'arrivée, l'autre de départ. Jusque là tout fonctionne.
Mais je souhaiterais empêcher la sélection des jours qui précèdent celui de la consultation ? Ensuite, j'aimerais que lors de la saisie dans mon fichier nommé Calendrier_01.php de la date d'arrivée , la valeur $arrivee aille directement dans Calendrier_02.php et que celui-ci s'ouvre à cette même date.
Celà faciliterait la saisie tout en éviterant de vérifier que la datte de départ $depart de Calendrier_02.php n'est pas inférieure à celle d'arrivée $arrivee saisie dans Calendrier_01.php. Actuellement j'arrive juste à vérifier que la date choisie ne soit pas inférieure à celle du jour de consultation. Pour le reste, je sais pas faire
Si quelqu'un pouvait m'éclairer, je lui serais très reconnaissant. D'avance merci.
A tout hasard, voici le script de Calendrier_01.php
<?php
// Section de configuration
$bgcolor="EEDDFF" ; // Couleur de fond
$daybgcolor="9DA4FF" ; // Couleur des jours de la semaine
$dombgcolor="FFFFFF" ; // Couleur du jour sélectionné
$dayholcolor="EEDDFF" ; // Couleur des WE
// Mois
$month = array("janvier", "février", "mars", "avril", "mai", "juin", "juillet", "août", "septembre", "octobre", "novembre", "décembre");
// Semaine
$day = array ("Di", "Lu", "Ma", "Me", "Je", "Ve", "Sa");
// Message d'erreur
$error01 = "Date invalide"
?>
<html>
<head>
<style>
#semaine {font-family: verdana; color: #003399; font-size: 9pt;}
#general {font-family: verdana; font-size: 9pt;}
a:link,a:active,a:visited {text-decoration:none; color:#000000;}
a:hover {text-decoration:underline; color:#000000;}
</style>
<script language='JavaScript'>
window.resizeTo(200,290) ;
function modifier (jour)
{
window.location.href = "calendrier_01.php?form=<?echo $form;?>&elem=<?echo $elem;?>&mois=" + document.forms["MyCalendar"].elements['month'].options[document.forms["MyCalendar"].elements['month'].selectedIndex].value + "&jour=" + jour +"&annee=" + document.forms["MyCalendar"].elements['year'].options[document.forms["MyCalendar"].elements['year'].selectedIndex].value
}
<?php
if (!isset($jour))
$jour = date("j") ;
if (!isset($mois))
$mois = date("m") ;
if (!isset($annee))
$annee = date("Y") ;
// nombre de jours par mois
$nbjmonth[0] = 31 ;
$nbjmonth[1] = ($annee%4==0?($annee%100==0?($annee%400?29:28):29):28) ;
$nbjmonth[2] = 31 ;
$nbjmonth[3] = 30 ;
$nbjmonth[4] = 31 ;
$nbjmonth[5] = 30 ;
$nbjmonth[6] = 31;
$nbjmonth[7] = 31 ;
$nbjmonth[8] = 30 ;
$nbjmonth[9] = 31 ;
$nbjmonth[10] = 30 ;
$nbjmonth[11] = 31 ;
if(!checkdate($mois,$jour,$annee))
{
echo "alert('$error01')\n" ;
$jour = date("j") ;
$mois = date("m") ;
$annee = date("Y") ;
}
?>
</script>
</head>
<?
echo "<body bgcolor='#$bgcolor' onUnLoad=''>\n" ;
echo "<center><form name='MyCalendar'>\n" ;
echo "<table width='170'><tr>\n" ;
// Affichage de la sélection du mois
echo "<td><select name='month' onChange=\"modifier($jour)\">\n" ;
for ($i=0;$i<12;$i++)
{
echo "<option value='".($i+1)."'".($mois==($i+1)?" selected":"").">".$month[$i]."</option>\n" ;
$nmois = $month[$mois-1]; // Le nom du mois est affecté à la variable $nmois pour la saisie finale
}
echo "</select></td>\n" ;
echo "<td align='right'><select name='year' onChange=\"modifier($jour)\">\n" ;
// Affichage des années: avant l'année en cours 0, après 3
$y = date("Y") ;
for ($i=$y-0;$i<$y+3;$i++)
{
echo "<option value='$i'".($annee==($i)?" selected":"").">$i</option>\n" ;
}
echo "</select></td></tr><tr><td colspan='2'> </td></tr>\n" ;
echo "<tr><td colspan='2'><table width='100%' cellspacing='0' cellspading='0' border='0'>\n" ;
echo "<tr>\n" ;
// Affichage des jours et style font/couleur: ici bold
for($i=0;$i<7;$i++)
{
echo "<td width='14%' bgcolor='#$daybgcolor'><b><font id='semaine'>".$day[$i]."</font></b></td>" ;
}
echo "</tr>\n<tr><td colspan='7'> </td></tr>\n<tr>\n" ;
// Première ligne des jours
$j = date ("w", mktime (0,0,0,$mois,1,$annee)) ;
$dom = 1 ;
for ($i=0;$i<7;$i++)
{
if ($j<=$i)
{
echo "<td".($dom==$jour?" bgcolor='#$dombgcolor'":"")."><a href='javascript:modifier($dom)'><font id='general'>".$dom++."</font></a></td>\n" ;
}
else
echo "<td> </td>\n" ;
}
echo "</tr>\n" ;
// Le reste
for ($i=0;$i<5;$i++)
{
echo "<tr>\n" ;
for ($j=0;$j<7;$j++)
{
$j_inac = ($j==0 || $j==6) ;
if($dom < $nbjmonth[($mois-1)])
echo "<td".($dom==$jour?" bgcolor='#$dombgcolor'":($j_inac ?" bgcolor='#$dayholcolor'":""))."><a href='javascript:modifier($dom)'><font id='general'>".$dom++."</font></a></td>\n" ;
else if (checkdate($mois,$dom,$annee))
echo "<td".($dom==$jour?" bgcolor='#$dombgcolor'":($j_inac ?" bgcolor='#$dayholcolor'":""))."><a href='javascript:modifier($dom)'><font id='general'>".$dom++."</font></a></td>\n" ;
else
echo "<td> </td>\n" ;
}
echo "</tr>\n" ;
}
// vérification date entrée avec l'heure actuelle
$heure = date ("H");
$minute = date ("i");
$seconde = date ("s");
$timestamp = mktime($heure, $minute, $seconde, $mois, $jour, $annee);
// date actuelle directement en timestamp
$maintenant = mktime();
if ($timestamp < $maintenant) {
echo "$error01";
}
else
echo "\n<tr><td colspan='10' align='center'><input type='button' onclick='window.opener.document.forms[\"$form\"].elements[\"$elem\"].value=\"$jour $nmois $annee\";window.close()' value='Valider'> <input onclick='window.close()' type='button' value='Annuler'></td></tr></table>\n" ;
echo "\n</tr></table>\n" ;
echo "</td></tr></table>" ;
echo "</form></center>" ;
echo "</body>\n" ;
?>
</html>