
Wielka prośba o pomoc. Potrzebuje zrobić kalendarz na stronie, który uruchamiamy poprzez kliknięcie na ikonkę kalendarza. Jeśli wybiorę jakąś datę w kalendarzu (np. wyświetlany jako pop-up) wybrana data wpisze mi się w pole obok którego kalendarz został wywołany.
Przepraszam za ilość linii, ale chciałem aby sytuacja była jasna i łatwo można byłoby go ściągnąc.
Plik _kalendarz.php:
<html> <head> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-2"> <style type="text/css"> <!-- .dzien { font-family: "Trebuchet MS", Arial, Helvetica, Verdana; font-size: 11px; font-style: normal; line-height: normal; font-weight: normal; font-variant: normal; text-transform: none; color: #333333; text-decoration: none; text-align: center; } .nazwyDni { font-family: "Trebuchet MS", Arial, Helvetica, Verdana; font-size: 11px; font-style: normal; line-height: normal; font-weight: bold; font-variant: normal; text-transform: none; color: #FFFFFF; text-decoration: none; text-align: center; } .dzisiaj { font-family: "Trebuchet MS", Arial, Helvetica, Verdana; font-size: 11px; font-style: normal; line-height: normal; font-weight: bold; font-variant: normal; text-transform: none; color: #990000; text-decoration: none; text-align: center; } body { margin-left: 0px; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; } .dzien:hover { font-family: "Trebuchet MS", Arial, Helvetica, Verdana; font-size: 11px; font-style: normal; line-height: normal; font-weight: bold; font-variant: normal; text-transform: none; color: #333333; text-decoration: none; text-align: center; } --> </style> </head> <body> <table width="220" border="0" cellspacing="0" cellpadding="0"> <tr> </tr> <tr> <?php // ustawienia kolorow i wygladu kolumn $szerokosc = '25'; $wysokosc = '20'; $kolor_dni_tygodnia = '#666666'; $kolor_niedzieli = '#990000'; $background = '#eeeeee'; // url po kliknieciu na date $url = '_kalendarz.php'; // weryfikacja czy podano date czy ma wyswietlic dzisiejsza if (!isset($_GET['m'])) { $month = date("n"); } else { $month = $_GET['m'];} if (!isset($_GET['y'])) { $year = date("Y"); } else { $year = $_GET['y'];} if (!isset($_GET['d'])) { $day = date("d"); } else { $day = $_GET['d'];} $data_aktualna = date(mktime(0, 0, 0, $month, $day, $year)); $pierwszy_dzien_miesiaca = date ("w", mktime(0, 0, 0, $month, 1, $year)); $poprzedni_miesiac = $month-1; $month_txt = array('styczeń','luty','marzec','kwiecień','maj','czerwiec','lipiec','sierpień','wrzesień','październik','listopad','grudzien'); $wyswietl_miesiac = $month_txt[$month-1]; if (@$_GET['m'] == 12){ //mamy grudzien $kolejny_rok = $year+1; $kolejny_miesiac = 1; $poprzedni_rok = $year; $poprzedni_miesiac = $month-1; } else if (@$_GET['m'] == 1){ //mamy grudzien $kolejny_rok = $year; $kolejny_miesiac = $month+1; $poprzedni_rok = $year-1; $poprzedni_miesiac = 12; } else { $kolejny_rok = $year; $kolejny_miesiac = $month+1; $poprzedni_rok = $year; $poprzedni_miesiac = $month-1; } echo "<table width=207 border=0 cellspacing=0 cellpadding=0> </tr> </table>"; if($month == 2) { if(($year%4) == 0) { $no_days = 29; } else { $no_days = 28; } } elseif(($month == 1) || ($month == 3) || ($month == 5) || ($month == 7) || ($month == 8) || ($month == 10) || ($month == 12)) { $no_days = 31; } else { $no_days = 30; } $index=$pierwszy_dzien_miesiaca; $index--; if ($index<=0) $index+=7; $count = 0; for($a = 1; $a <= $index; $a++) { echo"<td></td>"; } for($i = 1; $i <= (7 - $index) ; $i++) { if (($i==date("d")) AND ($month==date("m"))) { echo"<td align=center class=dzisiaj width=$szerokosc height=$wysokosc> } else { echo"<td align=center class=dzien width=$szerokosc height=$wysokosc> } $count++; } echo"</tr>"; echo"<tr>"; for($j = $i; $j <= ($i + 6); $j++) { if (($j==date("d")) AND ($month==date("m"))) { echo"<td align=center class=dzisiaj width=$szerokosc height=$wysokosc> } else { echo"<td align=center class=dzien width=$szerokosc height=$wysokosc> } } echo"</tr>"; echo"<tr>"; for($k = $j; $k <= ($j + 6); $k++) { if (($k==date("d")) AND ($month==date("m"))) { echo"<td align=center class=dzisiaj width=$szerokosc height=$wysokosc> } else { echo"<td align=center class=dzien width=$szerokosc height=$wysokosc> } } echo"</tr>"; echo"<tr>"; for($l = $k; $l <= ($k + 6); $l++) { if (($l==date("d")) AND ($month==date("m"))) { echo"<td align=center class=dzisiaj width=$szerokosc height=$wysokosc> } else { echo"<td align=center class=dzien width=$szerokosc height=$wysokosc> } } echo"</tr>"; echo"<tr>"; if(($no_days - $l) >= 7) { $roll_over = $l + 6; } else { $roll_over = 7; } for($m = $l; $m <= $roll_over; $m++) { if (($m==date("d")) AND ($month==date("m"))) { echo"<td align=center class=dzisiaj width=$szerokosc height=$wysokosc> } else { echo"<td align=center class=dzien width=$szerokosc height=$wysokosc> } } echo"</tr>"; echo"<tr>"; for($n = $m; $n <= $no_days; $n++) { if (($n==date("d")) AND ($month==date("m"))) { echo"<td align=center class=dzisiaj width=$szerokosc height=$wysokosc> } else { echo"<td align=center class=dzien width=$szerokosc height=$wysokosc> } } echo"</tr>"; echo"</table>"; ?> </tr> <tr> </tr> </table> </body> </html>
Zawartość pliku xx.php, który wywołuje plik z kalendarzem:
<html> <head> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-2"> <script type="text/JavaScript"> <!-- function otworz_okno(theURL,winName,features) { window.open(theURL,winName,features); } //--> </script> </head> <body> <form name="kalendarz" method="post" action="</span>"> <<span style='color:blue'>table width="186" border="0" cellspacing="0" cellpadding="0"> <tr> <input name="data" type="text" id="data" size="10"> </tr> </table> </form> </body> </html>
PS. Dobrze byłoby gdyby okno z kalendarzem zamykało się po wybraniu odpowiedniej daty ale nie po zmianie miesiąca - a tego również nie udało mi się zrobić.
Będę bardzo wdzięczny za pomoc.