J
Joey
Gast
Hallo Leute,
Ich habe hier ein Script, mit dem ich meine Tabelle sortieren kann. Leider ist das Script für 3 Spalten geschrieben, ich brauche aber mehrere Spalten. Kann mir einer sagen was ich ändern muss und auch wieso? Ich habs soweit umgebaut, nur leider reagieren Spalte 4-9 nicht.
Danke
Hier der HTML Teil:
Und hier das Script:
Ich habe hier ein Script, mit dem ich meine Tabelle sortieren kann. Leider ist das Script für 3 Spalten geschrieben, ich brauche aber mehrere Spalten. Kann mir einer sagen was ich ändern muss und auch wieso? Ich habs soweit umgebaut, nur leider reagieren Spalte 4-9 nicht.
Danke
Hier der HTML Teil:
Code:
<body onload="init_tabsort('temperaturen')">
<form action="javascript:void(0)">
<table class="bg3" id="temperaturen" border="1" summary="Tabelle mit Wärmeleitwerten von Metallen">
<colgroup>
<col class="s23">
<col class="s43">
<col class="s43">
<col class="s43">
<col class="s43">
<col class="s43">
<col class="s43">
<col class="s43">
<col class="s43">
</colgroup>
<thead>
<tr>
<th><button type="button" class="s42 bg1" onClick="tabsort('temperaturen','an',0)"><span id="temperaturen_sort_img_0"></span>
Hersteller</button></th>
<th><button type="button" class="s42 bg1" onClick="tabsort('temperaturen','n',1)"><span id="temperaturen_sort_img_1"></span>
12V Idle</button></th>
<th><button type="button" class="s42 bg1" onClick="tabsort('temperaturen','n',2)"><span id="temperaturen_sort_img_2"></span>
12V Load</button></th>
<th><button type="button" class="s42 bg1" onClick="tabsort('temperaturen','n',3)"><span id="temperaturen_sort_img_3"></span>
7V Idle</button></th>
<th><button type="button" class="s42 bg1" onClick="tabsort('temperaturen','n',4)"><span id="temperaturen_sort_img_4"></span>
7V Load</button></th>
<th><button type="button" class="s42 bg1" onClick="tabsort('temperaturen','n',5)"><span id="temperaturen_sort_img_5"></span>
5V Idle</button></th>
<th><button type="button" class="s42 bg1" onClick="tabsort('temperaturen','n',6)"><span id="temperaturen_sort_img_6"></span>
5V Load</button></th>
<th><button type="button" class="s42 bg1" onClick="tabsort('temperaturen','an',7)"><span id="temperaturen_sort_img_7"></span>
dB gemessen</button></th>
<th><button type="button" class="s42 bg1" onClick="tabsort('temperaturen','an',8)"><span id="temperaturen_sort_img_8"></span>
dB subjektiv</button></th>
</tr>
</thead>
<tbody>
<tr>
<td class="b7">Thermaltake1</td>
<td class="b7">31°</td>
<td class="b7">30dB</td>
<td class="b7">31°</td>
<td class="b7">30dB</td>
<td class="b7">31°</td>
<td class="b7">30dB</td>
<td class="b7">31°</td>
<td class="b7">30dB</td>
</tr>
<tr>
<td class="b7">Thermaltake2</td>
<td class="b7">25°</td>
<td class="b7">35dB</td>
<td class="b7">31°</td>
<td class="b7">30dB</td>
<td class="b7">31°</td>
<td class="b7">30dB</td>
<td class="b7">31°</td>
<td class="b7">30dB</td>
</tr>
</tbody>
</table>
</form>
Und hier das Script:
Code:
var default_order = "asc"; // "asc" || "desc"
var asc_img_uri = "asc.gif";
var desc_img_uri = "desc.gif";
var asc_img_alt_text =
"aufsteigend sortiert: ändern in absteigend sortiert";
var desc_img_alt_text =
"absteigend sortiert: ändern in aufsteigend sortiert";
var tables = new Array();
var ti = 0;
function sort_table(id) {
this.id = id;
this.obj;
this.tbody_obj;
this.sort_cols = 0;
this.sort_rows = 0;
this.img_ids = new Array();
this.tr_ids = new Array();
this.td_ids = new Array();
this.active_sort_col;
this.active_sort_order = default_order;
}
function init_tabsort(table_id) {
if(!document.getElementById) return;
tables[ti] = new sort_table(table_id);
var t = ti;
ti += 1;
tables[t].obj = document.getElementById(table_id);
for(var i = 0; i < tables[t].obj.childNodes.length; i++) {
switch(tables[t].obj.childNodes[i].nodeName.toLowerCase()) {
case 'colgroup':
for(j = 0;
j < tables[t].obj.childNodes[i].childNodes.length;
j++)
if(tables[t].obj.childNodes[i].childNodes[j].nodeName.
toLowerCase() == 'col')
tables[t].sort_cols += 1;
break;
case 'tbody':
tables[t].tbody_obj = tables[t].obj.childNodes[i];
break;
default: break;
}
}
var tri = 0;
var tdi = 0;
for(i = 0; i < tables[t].tbody_obj.childNodes.length; i++) {
if(tables[t].tbody_obj.childNodes[i].nodeName.toLowerCase()
== 'tr') {
tables[t].tbody_obj.childNodes[i].id = 'tr_' + tri;
tables[t].tr_ids.push('tr_' + tri);
tables[t].sort_rows += 1;
tdi = 0;
for(j = 0;
j < tables[t].tbody_obj.childNodes[i].childNodes.length; j++) {
if(tables[t].tbody_obj.childNodes[i].childNodes[j].nodeName.toLowerCase() == 'td') {
tables[t].tbody_obj.childNodes[i].childNodes[j].id
= 'tr_' + tri + '_td_' + tdi;
tables[t].td_ids.push('tr_' + tri + '_td_' + tdi);
tdi += 1;
}
}
tri += 1;
}
}
}
function get_sort_table_obj_by_id(id) {
for(var i = 0; i < tables.length; i++)
if(tables[i].id == id)
return(tables[i]);
}
function numsort(a,b) {
return parseFloat(a) - parseFloat(b);
}
function tabsort(table_id, sort_type, col_n) {
if(!document.getElementById) return;
var delimiter = "|||||";
var to = get_sort_table_obj_by_id(table_id);
var sort_array = new Array();
for(var i = 0; i < to.sort_rows; i++) {
tr_array = new Array();
tr_id = 'tr_' + i;
td_id = tr_id + '_td_' + col_n;
tr_array.push(document.getElementById(td_id).innerHTML);
for(var j = 0; j < to.sort_cols; j++) {
if(j == col_n) continue;
else {
tr_id = 'tr_' + i;
td_id = tr_id + '_td_' + j;
tr_array.push
(document.getElementById(td_id).innerHTML);
}
}
tr_str = tr_array.join(delimiter);
sort_array.push(tr_str);
}
if(sort_type == 'an')
sort_array.sort();
else if(sort_type == 'n')
sort_array.sort(numsort);
if(to.active_sort_order == 'desc') {
sort_array.reverse();
to.active_sort_order = 'asc';
}
else
to.active_sort_order = 'desc';
for(i = 0; i < sort_array.length; i++) {
tr_array = sort_array[i].split(delimiter);
first = tr_array.shift();
tr_array.splice(col_n, 0, first);
for(j = 0; j < to.sort_cols; j++) {
tr_id = 'tr_' + i;
td_id = tr_id + '_td_' + j;
document.getElementById(td_id).innerHTML = tr_array[j];
}
}
var img_html;
if(to.active_sort_order == 'asc')
img_html = '[img]' + desc_img_uri + '[/img]';
else
img_html = '[img]' + asc_img_uri + '[/img]';
for(i = 0; i < to.sort_cols; i++) {
if(i == col_n)
document.getElementById(table_id + '_sort_img_' + i).innerHTML =
img_html + " ";
else
document.getElementById(table_id + '_sort_img_' + i).innerHTML = "";
}
}