(IMG:
http://forum.php.pl/style_emoticons/default/wacko.gif)
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:<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-2"> <!--
.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;
}
-->
<table width="220" border="0" cellspacing="0" cellpadding="0"> <td><div align="center"><img src="../elementy/pixel.gif" width="11" height="11"></div></td> <?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><td width=20 class=dzien><a href=$url?d=1&m=$poprzedni_miesiac&y=$poprzedni_rok class=dzien><<</a></td> <td width=180 class=dzien>$wyswietl_miesiac $year
</td> <td width=20 class=dzien><a href=$url?d=1&m=$kolejny_miesiac&y=$kolejny_rok class=dzien>>></a></td>
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;
}
echo"
<table border=0 bgcolor=$background><tr bgcolor=$kolor_dni_tygodnia>";
echo"
<td class=nazwyDni width=$szerokosc bgcolor=$kolor_dni_tygodnia>P
</td><td class=nazwyDni width=$szerokosc bgcolor=$kolor_dni_tygodnia>W
</td> <td class=nazwyDni width=$szerokosc bgcolor=$kolor_dni_tygodnia>Ś
</td> <td class=nazwyDni width=$szerokosc bgcolor=$kolor_dni_tygodnia>C
</td> <td class=nazwyDni width=$szerokosc bgcolor=$kolor_dni_tygodnia>P
</td> <td class=nazwyDni width=$szerokosc bgcolor=$kolor_dni_tygodnia>S
</td> <td class=nazwyDni width=$szerokosc bgcolor=$kolor_niedzieli>N
</td>";
$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>
<a href=$url?d=$i&m=$month&y=$year class=dzisiaj>$i
</a></td>";
} else {
echo"
<td align=center class=dzien width=$szerokosc height=$wysokosc> <a href=$url?d=$i&m=$month&y=$year class=dzien>$i
</a></td>";
}
$count++;
}
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>
<a href=$url?d=$j&m=$month&y=$year class=dzisiaj>$j
</a></td>";
} else {
echo"
<td align=center class=dzien width=$szerokosc height=$wysokosc> <a href=$url?d=$j&m=$month&y=$year class=dzien>$j
</a></td>";
}
}
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>
<a href=$url?d=$k&m=$month&y=$year class=dzisiaj>$k
</a></td>";
} else {
echo"
<td align=center class=dzien width=$szerokosc height=$wysokosc> <a href=$url?d=$k&m=$month&y=$year class=dzien>$k
</a></td>";
}
}
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>
<a href=$url?d=$l&m=$month&y=$year class=dzisiaj>$l
</a></td>";
} else {
echo"
<td align=center class=dzien width=$szerokosc height=$wysokosc> <a href=$url?d=$l&m=$month&y=$year class=dzien>$l
</a></td>";
}
}
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>
<a href=$url?d=$m&m=$month&y=$year class=dzisiaj>$m
</a></td>";
} else {
echo"
<td align=center class=dzien width=$szerokosc height=$wysokosc> <a href=$url?d=$m&m=$month&y=$year class=dzien>$m
</a></td>";
}
}
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>
<a href=$url?d=$n&m=$month&y=$year class=dzisiaj>$n
</a></td>";
} else {
echo"
<td align=center class=dzien width=$szerokosc height=$wysokosc> <a href=$url?d=$n&m=$month&y=$year class=dzien>$n
</a></td>";
}
}
?>
<td><img src="../elementy/pixel.gif" width="11" height="11"></td>
Zawartość pliku
xx.php, który wywołuje plik z kalendarzem:
<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);
}
//-->
<form name="kalendarz" method="post" action="</span>">
<<span style='color:blue'>table width="186" border="0" cellspacing="0" cellpadding="0">
<input name="data" type="text" id="data" size="10"> <td width="100"><img src="../elementy/kalendarz_pict.gif" width="26" height="23" border="0" onClick="otworz_okno('_kalendarz.php','Kalendarz','width=220,height=190')"></td>
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.
Ten post edytował kapitan kloss 6.05.2006, 08:28:40