Avatar billede humlebien Novice
14. oktober 2008 - 13:51 Der er 21 kommentarer og
1 løsning

søg mens jeg skriver

Jeg har en meget lang liste med navne, som jeg er ved at være træt af hver gang jegskal finde en person på listen i en dropdown-boks. Derfor kunne jeg godt tænke mig en anden løsning. Jeg tror at jeg har ideen men jeg skal lige hjælpes lidt igang med programmeringen.

Jeg forestiller mig følgende setup:
en tekstboks og en liste med alle navnene herunder. Når jeg begynder at skrive i tekstboksen, så begynder listen at formindskes for hvert bogstav jeg skriver.

Er det forståeligt??
Avatar billede olebole Juniormester
14. oktober 2008 - 13:52 #1
Ja :)
Avatar billede w13 Novice
14. oktober 2008 - 13:58 #2
Ja, jeg forstår det også. =)

(Er det noget, vi kan se et eksempel på, så vi ved, præcis hvordan det foregår?)
Avatar billede w13 Novice
14. oktober 2008 - 14:09 #4
For mig lyder det ikke, som om der er et behov for AJAX, men mere som om, han har listen, men skal have den til at blive mindre, når der søges.
Avatar billede humlebien Novice
14. oktober 2008 - 14:13 #5
Nej, jeg har ikke lige noget at vise. Men jeg forestiller mig at det er en onchange på tekstboxen, der så formindsker antallet af navne i listen for hvert tastetryk.... eller hvad siger i??
Avatar billede w13 Novice
14. oktober 2008 - 14:22 #6
Er det en tekstboks?

Vi kan ikke hjælpe dig uden at vide, hvordan du har lavet det eksisterende.

Har du fået koden / dele af koden et eller andet sted fra, eller har du selv skrevet den?

Kan vi se koden?
Avatar billede humlebien Novice
14. oktober 2008 - 14:34 #7
som det er nu, har jeg bare en dropdownboks med listen i. Og som dropdown fungerer reagerer den jo på et par tastetryk, men man skal jo være rimelig hurtig....

og nu kunne jeg godt tænke mig setup'et som beskrevet ovenfor...
Avatar billede w13 Novice
14. oktober 2008 - 14:45 #8
Har vi mulighed for at se dropdownboks-koden? :)
Avatar billede humlebien Novice
14. oktober 2008 - 15:04 #9
<select name="medlem_id">
<option value="984045">Adam Pedersen</option>
<option value="984228">Alberte Christiansen</option>
<option value="984196">Alberte Sørensen</option>
<option value="984316">Alex Poulsen</option>
<option value="984318">Alexander Olsen</option>
<option value="984215">Alexander Skov</option>
<option value="984351">Alexander Nielsen</option>
...
</select>
Avatar billede w13 Novice
14. oktober 2008 - 15:06 #10
Jeg må indrømme, jeg kan ikke se, hvordan det skulle fungere. Hvordan skal man kunne fortryde, hvis man taster forkert?
Avatar billede humlebien Novice
14. oktober 2008 - 15:12 #11
backspace?!
Avatar billede w13 Novice
14. oktober 2008 - 15:13 #12
Hmm. Ja, ok. For mig virker det bare uoverskueligt. Jeg ved heller ikke (fordi jeg ikke har testet), om det vil fungere ens i alle browsere.
Og med backspace i IE vil den også slette alt, man har skrevet, vil den ikke?
Avatar billede w13 Novice
14. oktober 2008 - 15:15 #13
Og når jeg tester det, resulterer backspace meget hurtigt i (hvis man ikke passer på), at browseren går tilbage til sidste side.
Avatar billede majbom Novice
14. oktober 2008 - 15:19 #14
det er vel osse derfor at spørger vil bruge en textbox i stedet, og spørger om hjælp til hvordan det så skal laves. så enten skal han hente alle navnene ud når siden loades og gemme dem i et array og så hente navne fra dette array, når der bliver skrevet i textboxen, eller skal det laves med et ajax-kald hver gang der bliver tastet/slettet i teksteboxen...

ligesom det i linket jeg postede tidligere...
Avatar billede w13 Novice
14. oktober 2008 - 15:21 #15
Ja, den del overså jeg vist. =)

Jeg tror dog stadig ikke, der er behov for AJAX, da det lader til at være en statisk liste.
Avatar billede olebole Juniormester
14. oktober 2008 - 15:23 #16
Hvad er det, du vil med Ajax? Du kan ikke bruge Ajax til noget, hvis du har listen nede i browseren fra start.

Hvorfor skal navnene forsvinde i listen, efterhånden som du skriver?
Avatar billede w13 Novice
14. oktober 2008 - 15:28 #17
F.eks. noget i retning af:

<script type="text/javascript">
function showList(oList){

    for(var i=0,im=oList.getElementsByTagName("div");i<im.length;i++)
        im[i].style.display="block";

}
function updateList(oList,sText){

    showList(oList);

    for(var i=0,im=oList.getElementsByTagName("div");i<im.length;i++)
        if(im[i].firstChild.nodeValue.toLowerCase().indexOf(sText.toLowerCase())!=0)
            im[i].style.display="none";

}
</script>

<input type="text" onkeyup="updateList(document.getElementById('list1'),this.value)">

<div id="list1">
    <div>Adam Pedersen</div>
    <div>Alberte Christiansen</div>
    <div>Alberte Sørensen</div>
    <div>Alex Poulsen</div>
    <div>Alexander Olsen</div>
    <div>Alexander Skov</div>
    <div>Alexander Nielsen</div>
</div>

måske? :)
Avatar billede w13 Novice
14. oktober 2008 - 15:30 #18
Eller sådan her (hvor der kigges på title-attributter i stedet for indhold i div'erne), så du f.eks. kan lægge links i de forskellige div'er o.lign:

<script type="text/javascript">
function showList(oList){

    for(var i=0,im=oList.getElementsByTagName("div");i<im.length;i++)
        im[i].style.display="block";

}
function updateList(oList,sText){

    showList(oList);

    for(var i=0,im=oList.getElementsByTagName("div");i<im.length;i++)
        if(im[i].getAttribute("title").toLowerCase().indexOf(sText.toLowerCase())!=0)
            im[i].style.display="none";

}
</script>

<input type="text" onkeyup="updateList(document.getElementById('list1'),this.value)">

<div id="list1">
    <div title="Adam Pedersen">Adam Pedersen</div>
    <div title="Alberte Christiansen">Alberte Christiansen</div>
    <div title="Alberte Sørensen">Alberte Sørensen</div>
    <div title="Alex Poulsen">Alex Poulsen</div>
    <div title="Alexander Olsen">Alexander Olsen</div>
    <div title="Alexander Skov">Alexander Skov</div>
    <div title="Alexander Nielsen">Alexander Nielsen</div>
</div>
Avatar billede majbom Novice
14. oktober 2008 - 15:34 #19
det var så osse det jeg skrev at det kunne laves uden ajax, men det kunne osse laves med... jeg skrev jo ikke at han SKULLE bruge det... |-)
Avatar billede w13 Novice
16. oktober 2008 - 14:33 #20
Humlebien>> Noget du kunne bruge? :)
Avatar billede humlebien Novice
22. oktober 2008 - 14:33 #21
Det var lige det jeg søgte :o)
Avatar billede w13 Novice
22. oktober 2008 - 14:39 #22
Tak for points! :)
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

IT-JOB