Tabelleninhalte dynamisch verändern....
Robert
0 Mirko- provider
0 Robert
0 peterS.
Hallo...
ich habe da eine kleine Frage... gibt es eine Möglichkeit, Tabelleninhalte dynamisch zu verändern...und zwar unter Netscape! Unter IE funktioniert das wunderbar über innerHTML, aber... :(
Ich habe eine Liste von Einträgen, die beim Anklicken EINE Tabelle mit neuen Inhalten füllen sollen! Gibt es vielleicht eine sauberere Lösung!
Für jeden Tipp und jede Information bin ich im voraus sehr dankbar.
Robert.
Hi Du,
beim NN4 geht das leider nicht so einfach, Du könntest das ganze aber mit Layern machen. Wenn Du dynamisch reinschreiben willst, muss es für NN4 leider sogar ein absolut positionierter sein.
Zum Reinschreiben kannst Du dann die Funktion hier nehmen (läuft unter IE4+,NN4.x,NN6)
if (document.layers) setText = function setText(name, txt) // writes text into a stylesheet
{ document.layers[name].document.open();
document.layers[name].document.write(txt);
document.layers[name].document.close();}
else if (document.all) setText = function setText(name, txt)
{ document.all.tags("div")[name].innerHTML = txt;}
else if (document.getElementById) setText = function setText(name, txt)
{ document.getElementById(name).innerHTML = txt;}
else setText = function setText(){};
Mirko
Hi Mirko...
und 1000 DANK!
Das werde ich gleich ausprobieren...
Toll...DANKE!!! :))
gruss Robert,
falls Du dynamisch in <layer>/<div>s schreiben darfst und willst,
koennte Dir ein blick auf folgenden feature-artikel helfen:
http://www.teamone.de/selfaktuell/artikel/jstable.htm
dort wird eine javascript-basierte klasse "table" vorgestellt;
mit den dort implementierten methoden sollte es moeglich sein,
tabellen-code kurz und schmerzlos zu erzeugen;
diesen code muesstest Du dann nur noch in den entsprechenden
layer / in das entsprechende div hineinschreiben - fertig;
und hier ein beispiel zur verdeutlichung:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
<head>
<title>was auch immer hier stehen soll</title>
<script language = "JavaScript" type="text/javascript">
<!--
// **************************************************************************************
// *********** hier muss der JavaScript-code des table-objekts notiert werden ***********
// *********** ***********
// *********** http://www.teamone.de/selfaktuell/artikel/jstable.htm#a12 ***********
// *********** ***********
// *********** wird hier aber der uebersichtlichkeit halber weggelassen ***********
// **************************************************************************************
function refreshTableContent()
{var myTable = new table('cols="6"','rows="10"','border="??"','bgcolor="#??"','cellspacing="0"','cellpadding=..','...', ... ,'name="testTable"','id="testTable"');
myTable.contentArraysToArguments();
//in abhaengigkeit von dieser und jener bedingung
//lege die gewuenschten eigenschaften und inhalte
//der betroffenen tabellenzellen fest - z.b.:
// {
myTable.contentArraysToArguments();
myTable.content[8][2].value = "hallo Du";
myTable.content[2][0].value = myTable.name;
myTable.content[3][5].value = myTable.cols;
myTable.content[4][5].value = myTable.rows;
myTable.content[1][1].props = 'colspan="3"';
myTable.content[1][1].value = 'colspan="3"';
myTable.content[2][4].props = 'rowspan="3" width="100" height="100" align="right" valign="bottom"';
myTable.content[2][4].value = 'rowspan="3"';
myTable.content[3][1].props = 'colspan="3" rowspan="4"';
myTable.content[3][1].value = 'colspan="3" rowspan="4"';
// }
myTable.contentArgumentsToArrays();
if (document.layers)
{document.myTableLayer.document.open("text/html");
document.myTableLayer.document.write(myTable.draw());
document.myTableLayer.document.close();
}
if (document.all)
{document.all.myTableLayer.innerHTML = write(myTable.draw());}
}
//-->
</script>
</head>
<body>
<!--
was auch immer hier stehen soll
...
...
und dann muss noch
der layer / das div
aus dem beispielcode
weiter oben fest
"verdrahtet" werden
-->
<div id="myTableLayer" style="position:absolute;top:??px;left:??px;z-index:??;visibility:visible;">
<!--
deine "default"-tabelle
-->
</div>
<!--
bei dem von Dir angesprochenen
onclick/onchange-event solltest
Du dann die funktion "refreshTableContent()"
aufrufen
-->
</body>
</html>
und hier der link zur js-table-klasse:
http://www.teamone.de/selfaktuell/artikel/jstable.htm#a12
viel spass - by(t)e by(t)e - peterS. - pseliger@gmx.net