dynamische Tabellenfelder im Netscape
Jan Lenck
- dhtml
Hallo Freunde der Internetprogrammierung!
Seit ein paar Tagen kämpfe ich mit DHTML unter Netscape. Dieses angefügte Beispiel funktioniert nur im Internet Explorer (siehe http://www.homema.de/dhtml) Der Netscape verweigert beharrlich die Artikel an der richtigen Stelle anzuzeigen.
Ich habe dazu auch (DHTML-Layer in Tabellenzellen... / http://www.teamone.de/selfhtml/sfarchiv/1999_2/t03554.htm) gelesen, aber weitergeholfen hat mir das auch nicht, da ich nicht jedesmal eine neue Tabelle aufbauen möchte/kann. Die obere Seite besteht ja praktisch nur aus dieser Tabelle und dann kann ich ja gleich die ganze Seite jedesmal neu aufbauen.
Es ist noch hinzuzufügen, daß ich als nächstes die Seiten mit ASP erweitern möchte. Im unten.htm wird dann die Datenbank ausgelesen und im oben.htm soll die dynamische Bestelleingabe möglich sein.
Gibt es für dieses Problem eine Lösungsmöglichkeit die nicht nur im Internet Explorer funktioniert, oder hat jemand eine Idee anders an die Sache heranzugehen?
Viele Grüße!
Jan
*************Source von default.htm
<html>
<head>
<title>DHTML</title>
<meta http-equiv="Author" content="Jan Lenck [mailto:jan.lenck@gmx.net]">
</head>
<frameset rows=80%,20%>
<frame name=fraOben src=leer.htm>
<frame name=fraUnten src=unten.htm>
</frameset>
</html>
*************Source von leer.htm
<html>
<body>
</body>
</html>
*************Source von unten.htm
<html>
<head>
<title>unten</title>
<script language=JavaScript>
function GlobaleBestellungen() {
this.Artikel = new Array()
this.Preis = new Array()
this.Artikel[0] = "Lutscher"
this.Artikel[1] = "Wasser"
this.Artikel[2] = "Kürbisse"
this.Preis[0] = 12.20
this.Preis[1] = 10.30
this.Preis[2] = 5.70
}
</script>
</head>
<body bgcolor="#FFFFFF">
Hallo, ich bin unten.htm
<script language=JavaScript>
top.fraOben.document.location.replace('oben.htm')
</script>
</body>
</html>
*************Source von oben.htm
<html>
<head>
<title>oben</title>
<meta http-equiv="expires" content="0">
<script language=JavaScript>
var MSIE
var Bestellungen = new top.fraUnten.GlobaleBestellungen()
if (document.all) {
MSIE = true
}
function ArtikelAnzeigen() {
if (MSIE) {
for (i=0;i<3;i++) {
document.all['Artikel' + i].innerHTML = Bestellungen.Artikel[i]
}
}
}
function PreiseAnzeigen() {
if (MSIE) {
for (i=0;i<3;i++) {
document.all['Preis' + i].innerHTML = document.frm['txtAnzahl' + i].value * Bestellungen.Preis[i]
}
}
}
</script>
</head>
<body bgcolor="#FFFFFF">
Hallo, ich bin oben.htm<br>
<br>
<form name=frm>
<table border=1>
<tr>
<td colspan=3><h1>Diese Tabelle enthält Artikel und Preise</h1></td>
</tr>
<tr>
<td>Artikel</td>
<td>Anzahl</td>
<td>Preise</td>
</tr>
<tr>
<td><div id=Artikel0></div></td>
<td><input type=text name=txtAnzahl0 value=0 onChange=PreiseAnzeigen()></input></td>
<td><div id=Preis0></div></td>
</tr>
<tr>
<td><div id=Artikel1></div></td>
<td><input type=text name=txtAnzahl1 value=0 onChange=PreiseAnzeigen()></input></td>
<td><div id=Preis1></div></td>
</tr>
<tr>
<td><div id=Artikel2></div></td>
<td><input type=text name=txtAnzahl2 value=0 onChange=PreiseAnzeigen()></input></td>
<td><div id=Preis2></div></td>
</tr>
</table>
</form>
<script language=JavaScript>
ArtikelAnzeigen()
PreiseAnzeigen()
</script>
</body>
</html>
*************Source ENDE
»» Der Netscape verweigert beharrlich die Artikel an der richtigen Stelle anzuzeigen.
Ich habe dazu auch (DHTML-Layer in Tabellenzellen... / http://www.teamone.de/selfhtml/sfarchiv/1999_2/t03554.htm) gelesen, aber weitergeholfen hat mir das auch nicht, da ich nicht jedesmal eine neue Tabelle aufbauen möchte/kann.
Das was Du willst geht definitiv nicht mit Netscape. Das ist einfach nicht im Konzept des Netscape 4 DHTML vorgesehen. Da geht es um dynamische Ebenen (Layer) und nicht darum jede kleine Tabellenzelle aendern zu koennen.
So wie Du es haben willst, kann ich als Loesung nur angeben, fuer die hintere Spalte auch Formularfelder zu benutzen oder Dir die Frage zu stellen, ob dieses Feature ueberhaupt notwendig ist fuer einen sinnvollen Shop.
Viele Gruesse, Thomas Hieck