Hiho,
ein langes WE spaeter:
Meine Idee ist, eine Vraiable mc = 0 (bzw. -1, da ja die Ordnung der Monate im Array immer 1 kleiner ist) zu setzen. Bei jedem Klick auf den "vor"-Button (ein .gif) wird dann eine funktion MonthCounter mit mc++ aufgerufen. Analog dazu zurück: mc--.
Das klingt dooch schonmal nach nem Konzept.
Ich erzeuge dann den Kalender nicht mehr mit dem Monat, sondern mit dem Monat + mc.
Aha... Warum? Macht das Sinn? Wenn MC schon quasi der Monat ist, zu was addierst Du dann noch Monat? Versuch mal mc und Monat zu einer einzigen Variablen zu machen. (die auch gern global sein darf)
Dabei macht es Sinn das Array erstmal zu vergessen und die Monate so zu zaehlen, dass Das Datumsobjekt damit was anfangen kann.
Veränderungen sind jetzt diese:
function Kalender (Monat, Jahr) {
...
var mc = -1;
var Wahlmonat = Monat + mc;
...
var Zeit = new Date(Jahr, Wahlmonat, 1);
Wie gesagt, ueberdenk das nochmal.
function SchreibeKopf (Monatstitel, HgFarbe, SchrFarbe, SchrGroesse, SchrArt) {
document.write("<tr>");
document.write('<td><a href="javascript:monthBack()" onclick="javascript:monthCounterB()"><img src="..."></a></td>');
document.write('...');
document.write('...');
document.write(Monatstitel);
document.write('</b></td><td><a href="javascript:monthForward();" onclick="javascript:monthCounterF(mc)"><img src="..."></a></td></font></tr>');
...
Das sieht soweit schonmal nuetzlich aus.
function selectDate(){
document.reisedaten.ED.options[Inhalt].selected=true
document.reisedaten.EM.options[Wahlmonat].selected=true
document.reisedaten.EY.options[Jahr].selected=true
}function monthCounterF(mc){
mc++;
return mc;
}
die sollte doch eingentlich monthForward() heissen? Und zu was ist das return gut? Du gibst ja nichts zurueck, wie es aussieht.
Dann muss ich den Kalender in der Funktion monthForward ja quasi aktualisieren. Wie mache ich das? Muss ich darin einfach die Funktion Kalender aufrufen? Weil das hat nicht so wirklich geklappt, vielleicht war aber auch was anderes falsch.
Eigentlich muss wirklich nur die Funktion nochmal aufgerufen werden. Aber denk mal drueber nach, was die macht. Bisher knallt sie einfach beim schreiben des Dokuments mit ihren document Writes den Kalender ins Dokument. Das ist natuerlich nicht sehr nuetzlich, wenn das dynamisch gemacht werden soll. Beschaeftige dich z.B. mal mit innerHTML und freunde dich schonmal mit dem Gedanken an, deine komplette Kalenderfunktion umzubauen. :)
Wie muss function monthForward(){} aussehen?
Genau so wie da oben:
function monthForward()
{
mc++;
}
Diese hier arbeitet mit einem globalen mc (Monat) Ansonsten halt noch die Variable uebergeben und eventuell mit Return wieder zurueckgeben. Alternativ, wenn Du das mit dem Array gleich mitloesen wilst bietet es sich an eine Variable Monat und eine Variable mc parallel laufen zu lassen. in Monat waere dann der Monat fuer das Datumsobjekt und in mc der Wert zum Array auslesen:
function monthForward()
{
Monat++;
mc++; (oder mc=Monat-1, damit bist du immer auf der sicheren Seite, falls mc mal wo nicht aktualisiert wird)
}
Den Jahreswechsel mache ich dann, wenn das mit dem Monat klappt.
gute Idee. Immer schoen Schritt fuer Schritt.
Wenn Du Dich mal so bei mir melden magst: ICQ #253187744
hab ich mir mal notiert. Ist aber selten ne gute Idee sowas oeffentlich zu posten.
So, mal sehen was draus wird. Etwas Javascript lernst Du auf alle Faelle dabei den SelfHTML Kalender in etwas nutzbares umzuwandeln. :)
Gruss