- wenn ich das update des kalenders per body onload initial aufrufe findet er die funktion update beim vorblättern nicht mehr.
du benutzt document.write() damit überschreibst du das Dokument und somit sind auch keine JS Funktionen mehr vorhanden.
- wenn ich innerhalb des body das update aufrufe funktioniert es. ich habe zusätzlich eine globale variable definiert um den aufruf innerhalb des body nur beim neuladen der seite zu bewerkstelligen. irgendwie wird meine variable überschrieben und ein klich auf vor zeigt den nächsten monat und dann sofort wieder den alten.
Da der Quelltext nicht lauffähig ist (wegen dem PHP Code) kann ihn keiner testen.
wer kann helfen ??
<html>
Du hast keinen DOCTYPE?
<head>
es fehlen noch title und eine charset Angabe.
<script language="JavaScript">
das language Attribut ... naja das weißt du ja schon
<!--
überflüssig.
myupdate=2;
function update(Diff)
{
alert('check1 myupdate'+myupdate)myupdate=1;
var now = new Date();
switch(Diff){
case 1:
var Monat = now.getMonth()
var Jahr = now.getYear()
var MN = dstring
Was ist dstring?
var Wo = MN.indexOf(" ")
Monatname = MN.substring(0,Wo)
Jahr = eval(MN.substring(Wo+1,MN.length))
Wieso eval()? substring Funktionert auch ohne.
if (Monatname=="Januar"){Monat=0}
if (Monatname=="Februar"){Monat=1}
if (Monatname=="März"){Monat=2}
if (Monatname=="April"){Monat=3}
if (Monatname=="Mai"){Monat=4}
if (Monatname=="Juni"){Monat=5}
if (Monatname=="Juli"){Monat=6}
if (Monatname=="August"){Monat=7}
if (Monatname=="September"){Monat=8}
if (Monatname=="Oktober"){Monat=9}
if (Monatname=="November"){Monat=10}
if (Monatname=="Dezember"){Monat=11}
Das ist höchst unelegant zumal es mehrmals vorkommt.
Es gäbe zwei Möglichkeiten, eine wäre z.b. ein Array zu defineren und dann eine Suchfunktion die den Index findet zu schreiben.
var Monate = ['Januar', 'Februar', 'März', 'April' ... ];
Array.prototype.search = function(wort)
{
for(var i = 0; i < this.length; i++) if( this[i] == wort) return i;
return -1;
}
var Monat = Monate.search('April');
var Monat = Monat + 1
Hier ist das var überflüssig, Monat ist bereits definiert und es gibt den ++ Operator: Monat++;
dstring=Monatname+' '+Jahr
window.document.write('<table>')
wie gesagt, damit überschriebst du das aktuelle Dokument inklusive Skripte.
Struppi.
Javascript ist toll (Perl auch!)