(Nur) Ausgewählte Tabellenzeilen im Popup ausgeben?

Cynric

Grünschnabel
Hallo!
Ich habe ein Problem mit einem JS, bzw. weiss nicht so recht, wie (und ob) ich es so realisieren kann. Google und eure Tutorial Section blieben weitestgehend ergebnislos :(

Ich habe eine ziemlich umfangreiche Tabelle (9 Spalten, davon eine für Checkboxen, 250+ Zeilen), in der ich in jeder Zeile am Anfang eine Checkbox (je zeile anderer Name und Value) habe. Ich möchte gerne ein JavaScript einbauen, mit dem ich über einen Button/Textlink mir nur die Zeilen (mit Inhalt), deren Checkboxen markiert sind in einem PopUp (z.B. zum späteren Drucken) ausgeben lassen kann.

Tabellenzeilenbeispiel:
Code:
....<tr bgcolor="#40A050"><td><input type="checkbox" name="1n" value="1v"></td>
 <td>Nummer
  </td><td>Feld1
 </td><td>Feld2
 </td><td>Feld3
 </td><td>Feld4
  </td><td>Feld5
 </td><td>Feld6
 </td><td>Feld7 
 </td></tr>
 <tr bgcolor="....
Habt ihr JavaScript-Götter eine Idee für mich? :)
Danke!
 
Du könntest so herangehen:
  • Erstelle zuerst eine Variable mit einem leeren String...darin wird der Tabellen-Code gespeichert.
Code:
strTabelle='';
  • Durchlaufe alle Reihen der Tabelle
Code:
for(i=0;i<document.getElementById('tabellen_id').rows.length;++i)
{
objReihe=document.getElementById('tabellen_id').rows[i];
  • dann ermittle, ob das erste Kindelement der ersten Zelle dieser Reihe "checked" ist(das ist die Checkbox...Name und Value sind dabei egal).
Code:
if(objReihe.cells[0].firstChild.checked)
  • ist dies der Fall, dann durchlaufe alle(bis auf die erste, die Checkbox willst du wahrscheinlich in der Druckversion nicht haben)...Zellen, und erzeuge neuen HTML-Code für die Reihe, welchen du an den String für die Tabelle ranhängst:
Code:
{
strTabelle+='<tr>'
for(j=1;j<objReihe.cells.length;++j)
    {
    strTabelle+='<td>'+objReihe.cells[j].innerHTML+'<\/td>';
    }
strTabelle+='<\/tr>';
}
  • jetzt sind die Daten zusammengestellt, du musst sie nur noch ausgeben:
Code:
if(strTabelle=='')
    {
    //Es wurde keine Reihe gewählt....und eine Meldung ausgegeben
    alert('Nix gecheckt');
    return;
    }

objPopup=window.open();
with(objPopup.document)
    {
    open();
    write('<html><head><title>Druckversion<\/title><\/head><body>');
    write('<table border="1">'+strTabelle+'<\/table><\/body></html>');
    close();
    }
objPopup.focus();
 
Zurück