Kalender erweitern !

Hi,

ich habe im Internet einen Kalender gefunden und wüsste nun gerne wie ich es schaffe das die einzelne Tage anklickbar sind und das so das sich ein Pop-Up Fenster öffnet in dem steht was an diesem Tag anliegt. Habt ihr ein paar Tipps ?

PHP:
<?php
$zeit=time();
$jahr=date("Y", $zeit); // ermitteln des Jahres
$mon=date("n", $zeit); // ermitteln des Monats
$akt=date("d", $zeit); // ermitteln des aktuellen Tages
$last=date("t", mktime(0,0,0,$mon,1,$jahr)); // ermitteln des letzten Tages des Monats

// Arrays für Monate und Wochentage
$mo = Array("", "Januar", "Februar", "März","April", "Mai", "Juni", "Juli", "August", "September", "Oktober", "November", "Dezember");
$wd = Array("So", "Mo", "Di", "Mi","Do", "Fr", "Sa", "So");

// ermitteln des Wochentages für den ersten Tages des Monats
$first_wd=date("w", mktime(0,0,0,$mon,1,$jahr));
if ($first_wd==0) $first_wd=7; // Korrektur für den Sonntag

echo "<table border=0 cellpadding=1 cellspacing=1>\n";

// Monat ausgeben
echo "<tr><td class=h colspan=7><b>" . $mo[$mon] . " $jahr</b></td>";

// Wochentage ausgeben
echo "<tr class=s><td>Mo</td><td>Di</td><td>Mi</td><td>Do</td><td>Fr</td><td>Sa</td><td>So</td></tr>\n";
echo "<tr>";

// Leere Zellen ausgeben, bis zum ersten Tag des Monats
for ($j=1; $j<$first_wd; $j++) { echo "<td class=d> "; }

for ($i=1; $i<=$last; $i++)
{
$x=$wd[date("w", mktime(0,0,0,$mon,$i,$jahr))]; // ermitteln des Wochentages
$bo="d0"; // definition des Standard-Style
if ($x=="So") { $bo="d1"; } // Einfärbung des Sonntages
if ($i==$akt) { $bo="d2"; } // Einfärbung des aktuellen Tages
echo "\t<td class=$bo>$i</td>\n";
if ($x=="So") echo "</tr>\n<tr>"; // Am Sonntag endet die jeweilige Zeile
}
echo "</tr></table>\n";
?>
 
Captain Subtext hat gesagt.:
das sich ein Pop-Up Fenster öffnet in dem steht was an diesem Tag anliegt.
Da PHP wahrscheinlich Deine Termine nicht kennt brauchst Du erst mal einen Speicher dafür, ich würd eine Datenbank nehmen.
Dann kannst Du mittels sprintf() aus den Variablen $jahr, $mon und $i ein Isodatum basteln. Dieses übergibst Du dann als GET-Parameter an das Popup das dann die entsprechenden Termine aus der Datenbank ausliest.
 
Jo mit einer Datenbank wollte ich das auch lösen aber gibt es noch eine andere Varriante weil ich bin ein Anfänger was PHP angeht und naja deine Varriante versteh ich nicht ganz so sehr :D.
 
Captain Subtext hat gesagt.:
gibt es noch eine andere Varriante
Textfile, aber ich bezweifle stark, dass das einfacher ist ;)

Wie man eine Funktion zum Öffnen eines Popups schreibt, und den passenden Link dazu kannst Du bei SelfHTML nachlesen.

Der Link nach sprintf() beschreibt exakt wie Du das Datum bekommst (Bsp. 5).
Das hängst Du dann an die URL von Deinem Popup ( popup.php?datum=$isodatum ), dort steht es dann als $_GET['datum'] zur Verfügung.

Und Tutorials über DB-Basics gibts ja auch wie Sand am Meer.
 
Was konkret verstehst Du denn nicht?

Du trägst Deine Termine in eine DB ein, als Suchfeld nimmste zweckmäßigerweis ein Feld vom Typ date, zum Sortieren eins vom Typ time,
siehe:
http://dev.mysql.com/doc/mysql/de/datetime.html
http://dev.mysql.com/doc/mysql/de/time.html

Die Anfrage lautet dann
SELECT * FROM termine WHERE date='$_GET['datum']' ORDER BY time

Da der Kalender aber 1, 2, 3, usw. anzeigt mußt Du mittels sprintf() das Datum in die Form YYYY-MM-DD bringen (so brauchst Du es für die DB-Abfrage).
Alternativ kannst Du auch Jahr, Monat und Tag einzeln an die URL anhängen und diese dann im Popup zusammen schrauben.

Dann hast Du im Head der Kalenderseite eine JavaScript-Funktion die das Popup öffnet ( window.open() ) und in der Schleife, die die Kalendertage generiert baust Du den Link ein der die Funktion aufruft.
 
So nun hab ich alles soweit gemacht aber nun hab ich ein weiteres Problem , ich übergebe ja per url die Daten an das Pop Up nur leider sieht es im moment so aus dass das PopUp immer nur das aktuelle DAtum ausgibt was es aber nicht soll, es soll das Datum ausgeben auf welches man klickt, wie krieg ich das hin ?

Der Kalender

P.S: In dem Beispiel ist es noch ohne PopUp Fenster also bitte nicht wundern.

Danke für die Hilfe.
 
Wie erstellst du denn den Link? Hier hängst du immer nur das aktuelle Datum an, welches vom Zielskript ausgelesen wird.
 
Hier das sind wohl die wichtigen Auschnitte die du brauhst.

PHP:
$zeit=time();
$jahr=date("Y", $zeit); // ermitteln des Jahres
$mon=date("n", $zeit); // ermitteln des Monats
$akt=date("d", $zeit); // ermitteln des aktuellen Tages
$last=date("t", mktime(0,0,0,$mon,1,$jahr)); // ermitteln des letzten Tages des Monats
$isodatum = sprintf ("%04d-%02d-%02d", $jahr, $mon, $akt);

PHP:
echo "\t<td class=$bo><a class='navi' href='/url.php?datum=$isodatum'>$i</a></td>\n";

So wenn du noch was wissen musst sag bitte bescheid.
 
Zurück