hallo,
hab nach langen suchen mich für die überarbeitung eines einfachen javascritkalendes entschieden. er funktioniert auch bis auf das vor und zurückblättern. eigentlich habe ich 2 probleme.
1. wenn ich das update des kalenders per body onload initial aufrufe findet er die funktion update beim vorblättern nicht mehr.
2. 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.
wer kann helfen ??
<?
if (isset($_GET['datum'])) $datum=$_GET['datum'];
?>
<html>
<head>
<script language="JavaScript">
<!--
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
var Wo = MN.indexOf(" ")
Monatname = MN.substring(0,Wo)
Jahr = eval(MN.substring(Wo+1,MN.length))
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}
var Monat = Monat + 1
if (Monat==12) {
Monat = 0
Jahr = Jahr + 1
}
var Monatname = ""
var Erster = new Date(Jahr,Monat,1)
window.document.dateform.monat.value=Monat
window.document.dateform.jahr.value=Jahr
window.document.dateform.update.value=1
break;
case 0:
var Monat = now.getMonth()
Monat=window.document.dateform.monat.value
var Monatname = ""
var Jahr = now.getYear()+1900
Jahr=window.document.dateform.jahr.value
var Erster = new Date(Jahr,Monat,1)
break;
case -1: var Monat = now.getMonth()
var Jahr = now.getYear()
var MN = dstring
var Wo = MN.indexOf(" ")
Monatname = MN.substring(0,Wo)
Jahr = eval(MN.substring(Wo+1,MN.length))
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}
var Monat = Monat - 1
if (Monat==-1)
{
Monat = 11
Jahr = Jahr - 1
}
var Monatname = ""
var Erster = new Date(Jahr,Monat,1)
window.document.dateform.monat.value=Monat
window.document.dateform.jahr.value=Jahr
window.document.dateform.update.value=1
break;
default:
break;
}
if (Monat==0){Monatname="Januar"}
if (Monat==1){Monatname="Februar"}
if (Monat==2){Monatname="März"}
if (Monat==3){Monatname="April"}
if (Monat==4){Monatname="Mai"}
if (Monat==5){Monatname="Juni"}
if (Monat==6){Monatname="Juli"}
if (Monat==7){Monatname="August"}
if (Monat==8){Monatname="September"}
if (Monat==9){Monatname="Oktober"}
if (Monat==10){Monatname="November"}
if (Monat==11){Monatname="Dezember"}
dstring=Monatname+' '+Jahr
window.document.write('<table>')
window.document.write('<tr><td><a href="#" onclick="update(-1);"><</a></td><td colspan="5">'+dstring+'</td><td><a href="#" onclick="update(1);">></a></td></tr>')
window.document.write('<tr><td>Mo</td><td>Di</td><td>Mi</td><td>Do</td><td>Fr</td><td>Sa</td><td>So</td></tr>')
if (Erster.getDay()==1){window.document.write('<tr>')}
if (Erster.getDay()==2){window.document.write('<tr><td> </td>')}
if (Erster.getDay()==3){window.document.write('<tr><td> </td><td> </td>')}
if (Erster.getDay()==4){window.document.write('<tr><td> </td><td> </td><td> </td>')}
if (Erster.getDay()==5){window.document.write('<tr><td> </td><td> </td><td> </td><td> </td>')}
if (Erster.getDay()==6){window.document.write('<tr><td> </td><td> </td><td> </td><td> </td><td> </td>')}
if (Erster.getDay()==0){window.document.write('<tr><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td>')}
i=0
while (i<=31)
{
i++;
Heute = new Date(Jahr,Monat,i)
if (Heute.getMonth()==Monat){
if (i<=9){i="0"+i}
{
if (Heute.getDay()==1){window.document.write('<tr>')}
var mymonat=now.getMonth()+1
var myjahr=now.getYear()+1900
window.document.write('<td><a href="#" onclick="send('+myjahr+','+mymonat+','+i+');">'+i+'</a></td>')
if (Heute.getDay()==0){window.document.write('</tr>')}
}
}
}
window.document.write('<table>')
alert('check2 myupdate'+myupdate)
}
function send(jahr,monat,tag)
{
if (tag<=9){tag="0"+tag}
if (monat<=9){monat="0"+monat}
var mydatum1=tag+'.'+monat+'.'+jahr
parent.window.opener.window.document.myform.datum.value = mydatum1;
parent.close();
}
//-->
</script>
</head>
<body>
<form name="dateform">
<?list($tag,$monat,$jahr)=split('.',$datum);?>
<input name="jahr" type="hidden" value="<?echo $jahr?>">
<input name="monat" type="hidden" value="<?echo $monat-1?>">
<input name="update" value="0">
<script language="JavaScript">
<!--
alert('my1: '+myupdate);
if (myupdate==2){ update(0);}
alert('my2: '+myupdate);
//-->
</script>
</form>
</body>
</html>