Hallo,
etwas spät, aber doch hab ich dir ein passendes Javascript geschrieben
Hier ist der Code:
<form name="Kalendertabelle_Form" action="">
<table border="1">
<tr>
<td>
<table border="0">
<tr>
<td>Termin</td>
<td><input type="text" name="Termin" value=""></td>
</tr>
<tr>
<td>Tag</td>
<td><select name="Tag" size="1">
<option selected>Montag</option>
<option>Dienstag</option>
<option>Mittwoch</option>
<option>Donnerstag</option>
<option>Freitag</option>
<option>Samstag</option>
<option>Sonntag</option>
</select></td>
</tr>
<tr>
<td>Zeit</td>
<td><input type="text" name="Zeit" value=""></td>
</tr>
<tr>
<td>Dauer</td>
<td><input type="text" name="Dauer" value="">
</td>
</tr>
<tr>
<td colspan="2">
<input type="button" value="OK" onclick="javascript:neuer_Termin()"></td>
</tr>
</table>
</td>
<td><script type="text/javascript">
<!--
var lt = unescape("%3C");
var direkt_einfuegen = (((document.Kalendertabelle_Form.innerHTML)&&(document.getElementById)) ? 1:0);
var Beschriftungen = new Array("Uhrzeit","Montag","Dienstag","Mittwoch","Donnerstag","Freitag","Samstag","Sonntag");
var Termine = new Array();
var Kalender_Zellen = lt+'table border="1">';
for(var i=0;i<17;i++)
{
Kalender_Zellen += lt+'tr>';
for(var j=0;j<8;j++)
Kalender_Zellen += lt+'td id="T'+(i>0 ? ((j-1)*16+i):'')+'">'+(i<1 ? Beschriftungen[j].bold():'')+((i>0)&&(j<1) ? i+7:'')+((direkt_einfuegen<1)&&(i>0)&&(j>0) ? lt+'input type="button" name="t'+((j-1)*16+i)+'" value="" style="background-color: transparent; border: 0px solid">':'')+lt+'/td>';
Kalender_Zellen += lt+'/tr>';
}
document.write(Kalender_Zellen+lt+'/table>');
function neuer_Termin()
{
with(document.Kalendertabelle_Form)
{
var Angabe1 = Termin.value;
var Angabe2 = Tag.selectedIndex;
var Angabe3 = parseInt(Zeit.value);
var Angabe4 = parseInt(Dauer.value);
}
var alle_Fehler = "";
if((Angabe1+"*").lastIndexOf("*")<1)
alle_Fehler += "Bitte einen Text zu dem Termin eingeben!\n";
if((Angabe3+""=="NaN")||(Angabe3<8)||(Angabe3>23))
alle_Fehler += "Bitte eine gültige Zeit zwischen 8 und 23 eingeben!\n";
if((Angabe4+""=="NaN")||(Angabe4<1))
alle_Fehler += "Bitte eine gültige Zeitdauer eingeben!\n";
if(!alle_Fehler)
{
for(var i=0;i<Angabe4;i++)
Termine[(Angabe2*16+Angabe3+i)] = Angabe1+","+(Angabe2+1)+","+Angabe3;
for(var i=0;i<120;i++)
{
if(Termine[i])
{
if(direkt_einfuegen<1)
document.Kalendertabelle_Form.elements["t"+(i-7)].value = Termine[i].substring(0,Termine[i].indexOf(","));
else
document.getElementById("T"+(i-7)).innerHTML = Termine[i].substring(0,Termine[i].indexOf(","));
}
}
}
else
alert(alle_Fehler);
}
//-->
</script></td>
</tr>
</table>
</form>
Das Aussehen ist genau so, wie auf deinem Bild gezeigt wird. Das Einzige, was ich anders gemacht habe, ist die Angabe des Tages; da hab ich ein Drop-Down Menü verwendet, weil das so einfacher ist.
Das Javascript läuft in allen javascript unterstützenden Browsern. Browser, die die Javascript-Eigenschaft
innerHTML und die Methode
getElementById() nicht unterstützen, zeigen die Termine in Buttons an. W3C validiert ist das Javascript übrigens auch