Hallo,
... weiss zwar immer noch nicht, was du per Ajax nachlädst. Habe aber selbst mal mit deinen Auswahllisten getestet, nur interessehalber - denn eine Auswahlliste mit über 11000 ( elftausend) Optionen - wer soll da was drin finden?
<form method="post" name="archiv">
<table border="0">
<tr>
<td colspan=6>
<input type="radio" name="sort" value="alphaab" onchange="chg_sort(this.form,true)"> alphabetisch absteigend
<input type="radio" name="sort" value="alphaauf" onChange="chg_sort(this.form,false)"> alphabetisch aufsteigend</td></tr>
<tr><td>
<select multiple size="20" id="tag" name="tag" >
<option value="1059"></option>
<option value="2">-</option>
<option value="1774">-ausstellung</option>
....
function chg_sort(form,revers) {
var sels=form.getElementsByTagName("select");
for (var i=0;i<sels.length;i++) {
alert(i+" "+sels[i].name+" sortieren " );
sel_sort(sels[i],revers);
}
}
function sel_sort(sel,revers) {
alert( "select-optionen sortieren: "+sel.name
+"\nOptionen: "+sel.options.length
+"\n" + ( revers? "descending " : "ascending") );
var arr= []; // all Optionen merken
for (var i=0, ie=sel.options.length; i<ie; i++) {
arr[i]=new Array(
sel.options[i].text,
sel.options[i].value,
sel.options[i].selected );
}
// Sortierfunktionen
function by_text(a,b) {
return a[0]<b[0] ? -1 : a[0] == b[0] ? 0 : 1 ;
}
function by_text_revers(a,b) {
return a[0]<b[0] ? +1 : a[0] == b[0] ? 0 : -1 ;
}
arr.sort(revers ? by_text_revers : by_text );
sel.options.length=0; // alle Optionen löschen
for (var i=0, ie=arr.length; i<ie; i++ ) {
sel.add(new Option(
arr[i][0],
arr[i][1],
0,
arr[i][2] ));
}
alert( "sort fertig: "+sel.name );
}
und mit diesem Verfahren dauert es eben auch einige Minuten ...
übrigens, der Validator hat einige Beanstandungen ...
Gruß plan_B
--
*®*´¯`·.¸¸.·
*®*´¯`·.¸¸.·