Lieber huby,
{'table_add':[this.value,var_ents,'','',['h1c1','schalweg1','schal_weg1'],'','','ud',1]}
das muss ich jetzt nicht verstehen, oder? Anscheinend soll jedes Array-Element einen Zelleninhalt der neu zu erzeugenden Zeile werden. Oder addierst Du senkrecht?
objekt.onchange = function () {
var onch;
"onch" ist eine lokale Variable. Das ist gut.
for(key in myarray[i][1][zi-1][oi][3][0]) {
Warum muss "key" eine globale Variable werden? Das ist nicht gut. Und woher kennt die Funktion "myarray"?
onch=key;
"key" enthält einen String als Wert, alternativ einen numerischen Wert. "onch" soll doch wohl aber ein Funktionsaufruf werden, oder? Das wird mir jetzt nicht so ganz klar...
for(var fi=0; fi<myarray[i][1][zi-1][oi][3][0][key].length; fi++) {
onch=onch+ ?
[...]
Da bin ich dann mit meinem Latein am Ende!
Ich auch, da ich Deinen Lösungsansatz nicht wirklich verstanden habe.
Bin für jeden Tipp dankbar.
Lass mal nachdenken. Du willst eine Tabellenzeile generieren, deren Aufbau in einem Objekt definiert ist. In diesem Objekt stehen die Zelleninhalte vordefiniert - soweit ja klar. Was genau soll denn jetzt die onchange-Funktion jetzt bewirken? Das ist alles andere als klar.
Du schreibst einen bereits teilweise funktionierenden Lösungsansatz:
objekt.setAttribute("onchange", myarray[i][1][zi-1][oi][3][0]);
Hier rufst Du im Grunde eine Funktion auf, die in einer globalen Objektvariable (oder Array-Variable) gespeichert ist. Das funktioniert im IE zwar nicht, aber das kann man ja auch anders machen. Was passiert denn bei folgendem Code?
objekt.onchange = "myarray[i][1][zi-1][oi][3][0];"
Im Grunde genommen sollte dieser Code fast dasselbe bewirken, wie Dein obiger Ansatz.
Liebe Grüße aus Ellwangen,
Felix Riesterer.
ie:% br:> fl:| va:) ls:[ fo:) rl:° n4:? de:> ss:| ch:? js:) mo:} zu:)