Avatar billede wordwrap Nybegynder
02. december 2004 - 15:03 Der er 4 kommentarer og
1 løsning

selectbox, autocomplete (fortsat)

Hejsa

For dem der fulgte lidt med i går, fik jeg lidt hjælp med at få en funktion til at køre, så der via et text felt kunne sorteres i min select box, dette virker nu også fint, koden til dette er:

<script type="text/javascript">
valg = new Array();
<?
for($x=0;$x<sizeof($phpArray);$x++) {
  $s .= "valg[valg.length]='$phpArray[$x]';\r\n";
}
echo($s);
?>

valg.sort();

function opdater(felt) {

  selOpts = felt.form.sel.options;
  selOpts.length = 0;
  for (i = 0; i < valg.length; i++)
    if (felt.value == "" || valg[i].toLowerCase().indexOf(felt.value.toLowerCase()) == 0)
      selOpts[selOpts.length] = new Option(valg[i], valg[i]);
}
</script>


Der er så opstået et nyt og pænt sagt lidt irreterende problem...

funktionen virker fint, så længe der er tale om "små" arrays..

Men der hvor den skal bruges er der tale om et array på ~ 5000

Problemet ligger i at når første tegn vælges (i firefox og ie), tager sorteringen omkring 20 sek... hvilket må siges og være pænt lang tid og vente...

Køres siden i opera er der ingen problemer, her tager det omkring 1 sek.

nogen gode ideer ??
Avatar billede thomas_yde Nybegynder
02. december 2004 - 15:51 #1
har du et link til siden?
Avatar billede wordwrap Nybegynder
02. december 2004 - 15:53 #2
desvære ikke....det kører på en intern server, som ikke kan fanges udefra
Avatar billede roenving Novice
02. december 2004 - 16:04 #3
Måske den omvendte vil være hurtigere:

function opdater(felt) {

  selOpts = felt.form.sel.options;
  if (felt.value == ""){
    selOpts.length = 0;
    for (i = 0; i < valg.length; i++)
      selOpts[selOpts.length] = new Option(valg[i], valg[i]);
  }else{
    var t = felt.value.toLowerCase()
    for(i=0;selOpts.length>i;i++){
      if(selOpts[i].toLowerCase().indexOf(t)!= 0)
        selOpts[i] = null;
    }
}
Avatar billede roenving Novice
08. august 2005 - 14:24 #4
Oki, så lægger jeg et svar '-)
Avatar billede roenving Novice
08. august 2005 - 14:29 #5
-- og tak for point ;~}
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester