Hallo, ich habe eine tabelle mit verschiedenen Elementen je Zeile. Das auslesen der Daten von Oracle geht per SQL, das füllen der Tabelle dann mit java und HTML. Das ganze läuft über eine .java Datei die ihren inhalt komplett an den Client übergibt, wo dann im Browser die tabelle erzeugt wird. Das erzeugen der Felder mit Inhalt erfolgt per Schleife, weswegen auch hinter jedem label/Container ein j steht. Damit es eindeutig ist. 1. Sobald ich auf "bearbeiten" klicke, soll sich das Feld zum textfeld ändern, dass ich etwas eintragen kann. 2. Sobald ich auf fertig klicke soll es sich wieder zum normalen feld ändern, wo man nix tippen kann. 1. habe ich wie folge gelöst und es scheint auch zu gehen: das Textfeld:
Die Methoden die dann genutzt werden sind zum ersten die Konvertierung zum textfeld (aus der Datei functions.js)
function changeToTextconfig(j) { // Inhalt des Lebes auslesen und Label löschen var container = document.getElementById('container'+j); var element = document.getElementById('label'+j); var inhalt = element.innerText; container.removeChild(element); // Textfeld hinzufügen mit Inhalt des Labels element = document.createElement('div'); element.setAttribute('id','text'); element.innerHTML = ''; container.appendChild(element); // Bearbeiten-Button löschen var image = document.getElementById('image'+j); var button = document.getElementById('button'+j); image.removeChild(button); // Übernehnmen-Button hinzufügen button = document.createElement('div'); button.setAttribute('id', 'button'); button.innerHTML = '[IMG]http://www.forum-hilfe.de/img/check.jpg[/IMG]'; image.appendChild(button); }
Das scheint auch zu gehen. Es erzeugt das Textfeld und ändert den Button um, 2. Aber beim klicken auf den Button um es dann wieder zu einem normalen tabellenfeld zu machen, kommt eine Meldung, dass das Objekt null ist.
function changeToLabelconfig(j) { // Inhalt des Textfeldes auslesen und das Textfeld löschen var container = document.getElementById('container'); var element = document.getElementById('text'); var inhalt = document.konfiguration.text.value; container.removeChild(element); // Label mit Inhalt des Textfeldes erstellen element = document.createElement('div'); element.setAttribute('id','label'); element.innerHTML = inhalt; container.appendChild(element); // Übernehmen-Button löschen var image = document.getElementById('image'); var button = document.getElementById('button'); image.removeChild(button); // Bearbeiten-Button hinzufügen button = document.createElement('div'); button.setAttribute('id', 'button'); button.innerHTML = '[IMG]http://www.forum-hilfe.de/img/edit.jpg[/IMG]'; image.appendChild(button); }
Könnt ihr mir helfen und sagen wo (wahrscheinlich) bei der 2. Funktion ein fehler ist. Ich finde irgendwie nix. Auch das anhängen von j wie oben bringt keine Änderung. Danke