2Danke
ERLEDIGT
JA
JA
ANTWORTEN
7
7
ZUGRIFFE
253
253
EMPFEHLEN
-
Hallöchen!
Ich bekomme eine Tabelle ausgegeben, mit Datensätzen, die einen Fehler enthielten beim Upload in die DB.
Es gibt vier verschiedene Fehlermeldungen.
Nun möchte ich mit Checkboxen den Benutzer auswählen lassen, welche Zeilen er angezeigt bekommen möchte, sortiert nach fehlermeldung.
Also da sind vier Checkboxen und man kann lsutig auswählen, welche denn angezeigt werden sollen.
Und das hatte ich mir gedacht... funktioniert auch fast. Nur scheint er nur das Element <tr> ausgeblendet zu werden, die <td>s bleiben... außerdem bleiben die checkboxen gesetzt und der Haken geht nicht weg...HTML-Code:<p>Zeige nur Datensätze mit folgenden Fehlern:<br /> <input type="checkbox" name="fehler" id="fehler1" onchange="setVisibility()" checked="checked"> Keine UVP <input type="checkbox" name="fehler" id="fehler2" onchange="setVisibility()" checked="checked"> Kein VK-Preis <input type="checkbox" name="fehler" id="fehler3" onchange="setVisibility()" checked="checked"> Weder noch <input type="checkbox" name="fehler" id="fehler4" onchange="setVisibility()" checked="checked"> Artikel nicht gefunden</p> <table><tr><td>Nr.</td><td>Zeile in CSV Datei</td><td>EAN</td><td>Hersteller-Name</td><td>Artikelnummer</td><td>Fehler:</td></tr> <!--anfang:ERGEBNIS!--> <tr id="{fehler}"><td>{nummer}</td><td>{zeile}</td><td>{ean}</td><td>{id}</td><td>{artnr}</td><td>{fehler}</td></tr> <!--ende:ERGEBNIS!--> </table>
Kann mir da wer helfen?HTML-Code:function setVisibility(){ if(document.getElementById('fehler1').checked = true){ document.getElementById('Keine UVP').style.display = 'block'; }else{ document.getElementById('Keine UVP').style.display = 'none'; } if(document.getElementById('fehler2').checked = true){ document.getElementById('Kein VK_Preis!').style.display = 'block'; }else{ document.getElementById('Kein VK_Preis!').style.display = 'none'; } if(document.getElementById('fehler3').checked = true){ document.getElementById('Kein Vk-Preis und keine UVP!').style.display = 'block'; }else{ document.getElementById('Kein Vk-Preis und keine UVP!').style.display = 'none'; } if(document.getElementById('fehler4').checked = true){ document.getElementById('Artikel nicht gefunden').style.display = 'block'; }else{ document.getElementById('Artikel nicht gefunden').style.display = 'none'; } }
-
26.10.11 15:08 #2
- Registriert seit
- Sep 2004
- Ort
- Möglingen (BaWü)
- Beiträge
- 3.109
Einzelne Zeilen einer Tabelle ausblenden ist nicht so ohne weiteres möglich (der überhaupt nicht, bin mir nicht sicher).
Aber wenn du es eh sortiert nach Fehlermeldung anzeigst, dann mach doch einfach für jeden Fehlertyp eine eigene Tabelle. Da ist es dann ganz einfach sie ein- oder auszublenden.Sollte ein Tipp von mir geholfen haben, habe ich nichts gegen eine entsprechende Bewertung oder ein Danke und wenn ein Problem gelöst ist, dann den Beitrag bitte auch als erledigt markieren.
Was ich gar nicht leiden kann sind User die es nicht für nötig halten auf Antworten zu reagieren, die Themen nicht als erledigt markieren und/oder die sich nicht für Hilfe bedanken.
-
Das hier ist eine Zuweisung und kein Vergleich. Deshalb wird immer der if-Zweig genommen.
Code javascript:1 2 3 4 5 6 7 8 9
//Vorher if(document.getElementById('fehler4').checked = true) //Nachher if(document.getElementById('fehler4').checked == true) //oder if(document.getElementById('fehler4').checked === true) //ODER VIEL BESSER if(document.getElementById('fehler4').checked)
Und "block" ist für Tabellenzeilen nicht das richtige. Ich nehme an, deshalb hast du das "Gefühl" die <tr> würden verschwinden.
Code javascript:1
display = 'table-row'
-
Hallo und danke für die Hilfe.
Es funktioniert auch fast. Der Code sieht nun so aus:
Aber, er nimmt nur ein (das oberste) Element, dass die ID hat. Die anderen bleiben stehen. Welche Möglichkeit habe ich noch dafür zu sorgen, dass alle Reihen verschwinden?HTML-Code:function setVisibility1(){ if(document.getElementById('fehler1').checked){ document.getElementById('Keine UVP').style.display = 'table-row'; }else{ document.getElementById('Keine UVP').style.display = 'none'; } } function setVisibility2(){ if(document.getElementById('fehler2').checked){ document.getElementById('Kein VK-Preis!').style.display = 'table-row'; }else{ document.getElementById('Kein VK-Preis!').style.display = 'none'; } } function setVisibility3(){ if(document.getElementById('fehler3').checked){ document.getElementById('Kein Vk-Preis und keine UVP!').style.display = 'table-row'; }else{ document.getElementById('Kein Vk-Preis und keine UVP!').style.display = 'none'; } } function setVisibility4(){ if(document.getElementById('fehler4').checked){ document.getElementById('Artikel nicht gefunden').style.display = 'table-row'; }else{ document.getElementById('Artikel nicht gefunden').style.display = 'none'; } }
-
Eine ID darf nur ein einziges Mal vor kommen. Deshalb liefert der Browser nur das aller erste Element zurück.
Z.B. könntest du den Elementen eine CSS-Klasse geben und dann über alle <tr> iterieren (getElementsByTagName) und prüfen, ob es die entsprechende Klasse hat.
Oder in modernen Browsern getElementsByClassName
-
26.10.11 20:48 #6
- Registriert seit
- Sep 2004
- Ort
- Möglingen (BaWü)
- Beiträge
- 3.109
Ich habe das jetzt mal ein bisschen umgebaut und andere IDs für die Zeilen vergeben aber damit geht es:
HTML-Code:<script language="javascript" type="text/javascript"> function setVisibility(){ if(document.getElementById('fehler1').checked){ document.getElementById('1').style.display = 'table-row'; }else{ document.getElementById('1').style.display = 'none'; } if(document.getElementById('fehler2').checked){ document.getElementById('2').style.display = 'table-row'; }else{ document.getElementById('2').style.display = 'none'; } if(document.getElementById('fehler3').checked){ document.getElementById('3').style.display = 'table-row'; }else{ document.getElementById('3').style.display = 'none'; } if(document.getElementById('fehler4').checked){ document.getElementById('4').style.display = 'table-row'; }else{ document.getElementById('4').style.display = 'none'; } } </script> <p>Zeige nur Datensätze mit folgenden Fehlern:<br /> <input type="checkbox" name="fehler" id="fehler1" onclick="setVisibility()" checked="checked"> Keine UVP <input type="checkbox" name="fehler" id="fehler2" onclick="setVisibility()" checked="checked"> Kein VK-Preis <input type="checkbox" name="fehler" id="fehler3" onclick="setVisibility()" checked="checked"> Weder noch <input type="checkbox" name="fehler" id="fehler4" onclick="setVisibility()" checked="checked"> Artikel nicht gefunden</p> <table><tr><td>Nr.</td><td>Zeile in CSV Datei</td><td>EAN</td><td>Hersteller-Name</td><td>Artikelnummer</td><td>Fehler:</td></tr> <tr id="1"><td>nummer</td><td>zeile</td><td>ean</td><td>id</td><td>artnr</td><td>fehler1</td></tr> <tr id="2"><td>nummer</td><td>zeile</td><td>ean</td><td>id</td><td>artnr</td><td>fehler2</td></tr> <tr id="3"><td>nummer</td><td>zeile</td><td>ean</td><td>id</td><td>artnr</td><td>fehler3</td></tr> <tr id="4"><td>nummer</td><td>zeile</td><td>ean</td><td>id</td><td>artnr</td><td>fehler4</td></tr> </table>
Sollte ein Tipp von mir geholfen haben, habe ich nichts gegen eine entsprechende Bewertung oder ein Danke und wenn ein Problem gelöst ist, dann den Beitrag bitte auch als erledigt markieren.
Was ich gar nicht leiden kann sind User die es nicht für nötig halten auf Antworten zu reagieren, die Themen nicht als erledigt markieren und/oder die sich nicht für Hilfe bedanken.
-
@tombe
leider hat meine Tabelle schnell mal mehr als vier Reihen. Die wird dynamsich erzeugt.
Aber danke dir für diesen Tipp.
ich habe es jetzt aber hinbekommen:
Code :1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52
function setVisibility(){ var arr = new Array(); arr = document.getElementsByTagName('tr'); if(document.getElementById('fehler1').checked){ for (var i = 0; i < arr.length; i++) { if(document.getElementsByTagName('tr').item(i).className == 'Keine UVP') document.getElementsByTagName('tr').item(i).style.display = 'table-row'; } }else{ for (var i = 0; i < arr.length; i++) { if(document.getElementsByTagName('tr').item(i).className == 'Keine UVP') document.getElementsByTagName('tr').item(i).style.display = 'none'; } } if(document.getElementById('fehler2').checked){ for (var i = 0; i < arr.length; i++) { if(document.getElementsByTagName('tr').item(i).className == 'Kein VK-Preis!') document.getElementsByTagName('tr').item(i).style.display = 'table-row'; } }else{ for (var i = 0; i < arr.length; i++) { if(document.getElementsByTagName('tr').item(i).className == 'Kein VK-Preis!') document.getElementsByTagName('tr').item(i).style.display = 'none'; } } if(document.getElementById('fehler3').checked){ for (var i = 0; i < arr.length; i++) { if(document.getElementsByTagName('tr').item(i).className == 'Kein VK-Preis und keine UVP!') document.getElementsByTagName('tr').item(i).style.display = 'table-row'; } }else{ for (var i = 0; i < arr.length; i++) { if(document.getElementsByTagName('tr').item(i).className == 'Kein VK-Preis und keine UVP!') document.getElementsByTagName('tr').item(i).style.display = 'none'; } } if(document.getElementById('fehler4').checked){ for (var i = 0; i < arr.length; i++) { if(document.getElementsByTagName('tr').item(i).className == 'Artikel nicht gefunden') document.getElementsByTagName('tr').item(i).style.display = 'table-row'; } }else{ for (var i = 0; i < arr.length; i++) { if(document.getElementsByTagName('tr').item(i).className == 'Artikel nicht gefunden') document.getElementsByTagName('tr').item(i).style.display = 'none'; } } }
Und eine Beispieltabelle, die ich grad manuell geschustert habe:
danke euch! Wieder was gelerntHTML-Code:<table ><tr><td>Nr.</td><td>Zeile in CSV Datei</td><td>EAN</td><td>Hersteller-Name</td><td>Artikelnummer</td><td>Fehler:</td></tr> <!--anfang:ERGEBNIS!--> <tr class='Keine UVP'><td>1</td><td>325</td><td>549451561561</td><td>Bla</td><td>145520</td><td>Keine UVP</td></tr> <tr class='Kein VK-Preis!'><td>1</td><td>325</td><td>549451561561</td><td>Bla</td><td>145520</td><td>Kein VK-Preis</td></tr> <tr class='Kein VK-Preis und keine UVP!'><td>1</td><td>325</td><td>549451561561</td><td>Bla</td><td>145520</td><td>weder noch</td></tr> <tr class='Artikel nicht gefunden'><td>1</td><td>325</td><td>549451561561</td><td>Bla</td><td>145520</td><td>Artikel nicht gefunden</td></tr> <tr class='Kein VK-Preis!'><td>1</td><td>325</td><td>549451561561</td><td>Bla</td><td>145520</td><td>Kein VK-Ppreis</td></tr> <tr class='Kein VK-Preis und keine UVP!'><td>1</td><td>325</td><td>549451561561</td><td>Bla</td><td>145520</td><td>Weder noch</td></tr> <tr class='Artikel nicht gefunden'><td>1</td><td>325</td><td>549451561561</td><td>Bla</td><td>145520</td><td>Artikel nicht gefunden</td></tr> <tr class='Keine UVP'><td>1</td><td>325</td><td>549451561561</td><td>Bla</td><td>145520</td><td>Keine UVP</td></tr> <!--ende:ERGEBNIS!--> </table>
-
26.10.11 20:57 #8
- Registriert seit
- Sep 2004
- Ort
- Möglingen (BaWü)
- Beiträge
- 3.109
Das war mir schon klar das deine Tabelle dynamisch erzeugt wird und eine unterschiedliche Anzahl Zeilen hat.
Ich hatte es auch nur als Beispiel und für mich zum testen so "starr" umgebaut.Sollte ein Tipp von mir geholfen haben, habe ich nichts gegen eine entsprechende Bewertung oder ein Danke und wenn ein Problem gelöst ist, dann den Beitrag bitte auch als erledigt markieren.
Was ich gar nicht leiden kann sind User die es nicht für nötig halten auf Antworten zu reagieren, die Themen nicht als erledigt markieren und/oder die sich nicht für Hilfe bedanken.
Ähnliche Themen
-
Probleme beim Ausblenden einer Tabellenzeile (TR)
Von Zeebo im Forum CSSAntworten: 1Letzter Beitrag: 05.08.11, 11:17 -
Tabellenzeile hinzufügen
Von timpanse im Forum Javascript & AjaxAntworten: 15Letzter Beitrag: 16.09.10, 00:13 -
TabellenZeile markieren über Checkbox
Von Gray im Forum Javascript & AjaxAntworten: 6Letzter Beitrag: 19.10.05, 09:47 -
Tabellenzeile markieren
Von ludz im Forum Javascript & AjaxAntworten: 2Letzter Beitrag: 30.10.03, 15:11 -
Link auf Tabellenzeile....F.r.a.g.e.!
Von Arktis666 im Forum Javascript & AjaxAntworten: 3Letzter Beitrag: 18.08.01, 21:18





Zitieren


Login





