Ich habe folgende Tabelle aber die Sortierung funktioniert nicht richtig.
Wo habe ich den fehler? kenne mich nicht so gut aus mit JavaScript.
#Kopfbereich { position:absolute; top:20px; left:30px; }
#Tabelle { position:absolute; top:100px; left:30px; }
body { background-color:#FFFFFF; }
h1,h2,h3,p,ul,ol,li,td,th { font-family:Arial,sans-serif; color:black; }
h1 { font-size:24px; margin-top:4px; margin-bottom:4px; margin-left:6px; }
p,ul,ol,li,td,th { font-size:13px; color:#000000; }
th,td { padding:1px; }
<!–
var Tabellendaten = new Array(
„Driveclub“,„Playstation 4“,„8/10“,„Ausgabe 2“,
„Assasin Creed 4: Black Flag“,„Playstation 4“,„9/10“,„Ausgabe 1“,
„Knack“,„Playstation 4“,„5/10“,„Ausgabe 3“,
„Killzone: Shadow Fall“,„Playstation 4“,„10/10“,„Ausgabe 3“,
„Battelfield 4“,„Playstation 4“,„7/10“,„Ausgabe 1“,
„Watch Dogs“,„Playstation 4“,„8/10“,„Ausgabe 1“,
„Need for Speed: Rivals“,„Playstation 3“,„7/10“,„Ausgabe 1“,
„LEGO Marvel Superheros“,„Playstation 4“,„4/10“,„Ausgabe 1“,
„Call of Duty: Ghosts“,„Playstation 4“,„10/10“,„Ausgabe 1“,
„Infamous: Second Son“,„Playstation 4“,„3/10“,„Ausgabe 1“,
„Skylanders: Swap Force“,„Playstation 4“,„2/10“,„Ausgabe 1“,
„Just Dance 2014“,„Playstation 4“,„6/10“,„Ausgabe 1“,
„FIFA 14“,„Playstation 4“,„7/10“,„Ausgabe 1“,
„NBA Live 14“,„Playstation 4“,„5/10“,„Ausgabe 1“,
„NBA 2K14“,„Playstation 4“,„6/10“,„Ausgabe 1“,
„Madden NFL 25“,„Playstation 4“,„5/10“,„Ausgabe 1“
);
var sortierte_Tabellendaten = new Array(Tabellendaten.length);
var Spaltenueberschriften = new Array(
„Spiele“,
„Platform“,
„Wertung“,
„Ausgabe“
);
var Spalten = Spaltenueberschriften.length;
var Zeilen = Tabellendaten.length / Spalten;
var Spaltenueberschriftformatierungen = new Array(
"width=„250“ valign=„top“ style=„text-align:left; border:solid 1px #808080"“,
"width=„100“ valign=„top“ style=„text-align:right; border:solid 1px #808080"“,
"width=„100“ valign=„top“ style=„text-align:right; border:solid 1px #808080"“,
"width=„100“ valign=„top“ style=„text-align:right; border:solid 1px #808080"“
);
var Spaltenformatierungen = new Array(
"width=„250“ style=„text-align:left; border:solid 1px #808080"“,
"width=„100“ style=„font-family:Courier New,courier; text-align:right; border:solid 1px #808080"“,
"width=„100“ style=„font-family:Courier New,courier; text-align:right; border:solid 1px #808080"“,
"width=„100“ style=„font-family:Courier New,courier; text-align:right; border:solid 1px #808080"“
);
var Spaltensortierungen = new Array(
„alphabetisch“,„alphabetisch“,„numerisch“,„alphabetisch“
);
var Tabellenformatierung = "border=„1“ style=„border:solid 1px #808080“ cellspacing=„0"“;
var Ordinalzahlenspalte = 1;
var Ordinalzahlenspaltenformatierung = "width=„20“ style=„border:solid 1px #808080"“;
var IconNormalAuf = „<img src=„normal_auf.gif“ width=„14“ height=„12“ border=„0“ alt=“">";
var IconNormalAb = „<img src=„normal_ab.gif“ width=„14“ height=„12“ border=„0“ alt=“">";
var IconSortiertAuf = „<img src=„sortiert_auf.gif“ width=„14“ height=„12“ border=„0“ alt=“">";
var IconSortiertAb = „<img src=„sortiert_ab.gif“ width=„14“ height=„12“ border=„0“ alt=“">";
var Sortierzeile = „“;
function Erzeuge_Sortierzeile(Nummer,Richtung) {
Sortierzeile = „<tr>“;
if(Ordinalzahlenspalte)
Sortierzeile += "<th " + Ordinalzahlenspaltenformatierung + „> </th>“;
for(var j = 0; j < Spalten; ++j) {
Sortierzeile += "<th " + Spaltenformatierungen[j] + „>“;
if(Richtung == „aufsteigend“ && j == Nummer) {
Sortierzeile += IconSortiertAuf + " ";
Sortierzeile += „<a href=„javascript:Sortiere_nach_Spalte(“ + j + „,’“ + Spaltensortierungen[j] + „’,‚absteigend‘)“>“ + IconNormalAb + „</a>“;
}
else if(Richtung == „absteigend“ && j == Nummer) {
Sortierzeile += „<a href=„javascript:Sortiere_nach_Spalte(“ + j + „,’“ + Spaltensortierungen[j] + „’,‚aufsteigend‘)“>“ + IconNormalAuf + „</a>“;
Sortierzeile += " " + IconSortiertAb;
}
else {
Sortierzeile += „<a href=„javascript:Sortiere_nach_Spalte(“ + j + „,’“ + Spaltensortierungen[j] + „’,‚aufsteigend‘)“>“ + IconNormalAuf + "</a> ";
Sortierzeile += „<a href=„javascript:Sortiere_nach_Spalte(“ + j + „,’“ + Spaltensortierungen[j] + „’,‚absteigend‘)“>“ + IconNormalAb + „</a></td>“;
}
Sortierzeile += „</th>“;
}
Sortierzeile += „<tr>“;
}
function Sortiere_nach_Spalte(Nummer,Art,Richtung) {
var Spaltendaten = new Array();
var Vergleichsdaten = new Array();
var SortierIndex = new Array();
for(var i = 0; i < Zeilen; ++i)
Spaltendaten[i] = Vergleichsdaten[i] = Tabellendaten[i \* Spalten + Nummer];
if(Art == „alphabetisch“) Spaltendaten.sort();
if(Art == „numerisch“) Spaltendaten.sort(Numsort);
if(Richtung == „absteigend“) Spaltendaten.reverse();
for(i = 0; i < Zeilen; ++i)
for(var j = 0; j < Zeilen; ++j)
if(Spaltendaten[i] == Vergleichsdaten[j])
SortierIndex[i] = j;
var Speicher;
for(i = 0; i < Zeilen; ++i)
for(j = 0; j < Spalten; ++j)
sortierte_Tabellendaten[i \* Spalten + j] = Tabellendaten[SortierIndex[i] * Spalten + j];
Erzeuge_Sortierzeile(Nummer,Richtung);
Schreibe_Tabelle(sortierte_Tabellendaten);
}
function Schreibe_Tabelle(Array) {
var Tabelleninhalt = „“;
Tabelleninhalt += "<table " + Tabellenformatierung + „>“;
Tabelleninhalt += „<thead><tr>“;
if(Ordinalzahlenspalte)
Tabelleninhalt += "<th " + Ordinalzahlenspaltenformatierung + „> </th>“;
for(var j = 0; j < Spalten; ++j)
Tabelleninhalt += "<th " + Spaltenueberschriftformatierungen[j] + „>“ + Spaltenueberschriften[j] + „</th>“;
Tabelleninhalt += „</tr>“;
Tabelleninhalt += Sortierzeile;
Tabelleninhalt += „</thead>“;
Tabelleninhalt += „<tfoot></tfoot>“;
Tabelleninhalt += „<tbody>“;
for(var i = 0; i < Zeilen; ++i) {
Tabelleninhalt += „<tr>“;
if(Ordinalzahlenspalte)
Tabelleninhalt += "<td " + Ordinalzahlenspaltenformatierung + „>“ + (i+1) + „.</td>“;
for(var j = 0; j < Spalten; ++j)
Tabelleninhalt += "<td " + Spaltenformatierungen[j] + „>“ + Array[i \* Spalten + j] + „</td>“;
Tabelleninhalt += „</tr>“;
}
Tabelleninhalt += „</tbody>“;
Tabelleninhalt += „</table>“;
if(document.getElementById)
document.getElementById(„Tabelle“).innerHTML = Tabelleninhalt;
else if(document.all)
document.all.Tabelle.innerHTML = Tabelleninhalt;
else if(document.layers) {
document.Tabelle.document.open();
document.Tabelle.document.write(Tabelleninhalt);
document.Tabelle.document.close();
}
}
function Numsort(a,b)
{ return a-b; }
Tabelle
Wertungen