Hallo Forum,
ich habe ein Script, mit dem ich per Checkbox einen vorgegebenen Text an eine Prompt-Box übergebe, diesen dann erweitere und den erweiterten Text in ein Array als Element schreibe.
Nachdem das Array-Element geschrieben wurde, wird es dann in eine HTML-Tabelle und zwar in die erste Zelle eingetragen.
Dem übertragenen Text füge ich automatisch ein Änderungslink bei, der in eine eigene Zelle geschrieben wird. Dieser Link öffnet bei Klick darauf eine Prompt-Box, die den Inhalt des entsprechenden Zelltext anzeigt und zum Ändern zur Verfügung macht. Bei Klick auf OK wird der vorhandene Text mit dem geänderten Text überschrieben.
Nun möchte ich die Möglichkeit haben die Zeilen wieder zu löschen, indem ich lediglich das Häkchen wieder aus der Checkbox entferne.
Leider ist es zurzeit nur teilweise möglich und funktioniert auch nicht richtig, da die Zeilen nicht wirklich gelöscht werden und andererseits werden auch die falschen Zeilen gelöscht. Zudem werden die übrig gebliebenen Zeilen auch nicht ganz gelöscht, sondern lediglich der Inhalt.
Anbei das Script:
<script type="text/javascript">
<!--
var daten = new Array();
function treffe_auswahl(auswahl) {
//Table-element und Zellendefinition
var w=95+'%';
var table = document.getElementsByTagName("table")[6];
var row = table.insertRow(-1); // -1 = am ende
var cell = row.insertCell(-1);
cell.style.width=w;
cell.style.wordWrap='break-word';
var cell2 = row.insertCell(-1);
for (var i = 0; i < daten.length; i++) {
if (daten[i].indexOf(auswahl.value) > -1) {
row.setAttribute('id', 'row'+i);
}
}
//Ende
if (auswahl.checked) {
var neuer_string = auswahl.value + '\n' + prompt(auswahl.value, '');
daten.push(neuer_string);
//Table-element
document.getElementById('idNode').value = daten[1];
//Ende
checkbox();
}
else {
for (var i = 0; i < daten.length; i++) {
if (daten[i].indexOf(auswahl.value) > -1) {
document.getElementById("idNode").deleteRow(i);
daten.splice(i, 1);
}
}
}
for (var i = 0; i < daten.length; i++) {
var farbe = (i % 2) ? "#84c1de" : "#FFFFFF";
row.setAttribute("bgcolor",farbe);
if (daten[i].indexOf(auswahl.value) > -1) {
// cell2.innerHTML = '<a onClick=textAendern(daten['+i+']);>Ändern</a>\n\n';
cell2.innerHTML = '<a onclick=textAendern('+i+');>Ändern</a>\n\n';
cell.innerHTML = daten[i];
}
}
}
//}
//-->
</script>
<script type="text/javascript">
function textAendern(nnode) {
// alert(nnode);
for (i=0; i<=nnode; i++) {
if (i==nnode) {
nnode=i+1;
var x=document.getElementById('idNode').rows
var y=x[nnode].cells
var old_txt = y[0].innerHTML;
var new_txt = prompt('Bitte geben Sie den neuen Text ein', old_txt)
y[0].innerHTML=new_txt;
exit;
}
}
}
</script>
<table border="1">
<tr><td>
<label for="vorne_mitte"><input name="vorne_mitte" id="vorne_mitte" type="checkbox" title="Vorne mitte" value="Dem Besichtigungseindruck nach zu urteilen, hat ein Anstoß an der Fahrzeugfront stattgefunden, so daß " <?php echo ($vorne_mitte<>"") ? "CHECKED" : "" ?> onclick="treffe_auswahl(this)"></label></td><td width="10%"> </td>
<td width="300" align="center"><label for="fahrzeugdach_vorne"><input name="fahrzeugdach_vorne" id="fahrzeugdach_vorne" type="checkbox" title="Fahrzeugdach vorne" value="Dem Besichtigungseindruck nach zu urteilen, hat ein Anstoß am Fahrzeugdach stattgefunden, so daß" <?php echo ($fahrzeugdach_vorne<>"") ? "CHECKED" : "" ?> onclick="treffe_auswahl(this)"></label>
</td>
</tr>
</table>
<div style="height: 200px;overflow-y: scroll">
<table id="idNode" border="2">
</table>
</div>
Es wäre klasse, wenn mir jemand weiterhelfen könnte.
Besten Dank an alle.
Gruß,
Centauro