Avatar billede pnr Nybegynder
28. januar 2003 - 10:27 Der er 5 kommentarer og
1 løsning

Intiligent tekst felt

Er det muligt at lave et tekstfelt som søger i databasen efter de tegn man skriver, og forslår så det førdige ord. eks lige som når man skriver en url i internet expolere så forslår den de sider man har besøgt, udfra det man indtaster
Avatar billede Spotgun Seniormester
28. januar 2003 - 10:30 #1
Tror sgu det bli'r svært at strikke sammen, og hvis det lykkes kunne jeg forestille mig at du skal over i noget javascript i stedet for.

Problemet er, at ASP'en afvikles før HTML'en, så dit tekstfelt vil være genereret efter alle databasekald er blevet afsluttet. Dermed skal du nok over i at proppe alle dine ord i et javascript-array eller noget, og jeg kunne forestille mig at det endte med at blive MEGET tungt for både server og klient.
Avatar billede Spotgun Seniormester
28. januar 2003 - 10:33 #2
Jeg ved dog ikke om det ville kunne lade sig gøre, hvis du fik strikket en eller anden form for komponent sammen, der kunne køre på serveren, men stadigvæk tror jeg det bliver svært.

Vil dog gerne høre, hvis du finder en løsning på det :-)
Avatar billede Slettet bruger
28. januar 2003 - 10:38 #3
Ved ikke stiv du er i scripting og div. andre teknologier, men jeg ville nok prøve flg:

1) Læs via ASP værdierne i databasen ind i et JavaScript array (eller andet client-side script).

2) Sæt JavaScript til at lytte efter keystrokes på takstfeltet.

3) Når brugeren taster i tekstfeltet, så søg i array'et efter ord, der ligner, det, der er indtastet.

- Men du skal i så fald smide data fra hele database-tabellen over til klienten/browseren hver gang, siden hentes, og det kan godt være et problem mht performance og sikkerhed.
Avatar billede psyclown Nybegynder
28. januar 2003 - 11:35 #4
Du kan bruge det her, det virker fint:

<%
    Dim myOptions
    myOptions = ""

    Set conntemp = Server.CreateObject("ADODB.Connection")
    conntemp.Open DSN
    SQLAUTOCOMPLETE = "SELECT * FROM TABEL"
    Set rsAutoComplete = conntemp.Execute(SQLAUTOCOMPLETE)

    Do While Not rsAutoComplete.EOF
        myOptions = myOptions & "'" & rsAutoComplete("DIT_FELT") & "',"
        rsAutoComplete.MoveNext
    Loop

    myOptions = Left(myOptions,Len(myOptions)-1)

    rsAutoComplete.Close
    Set rsAutoComplete = Nothing
%>
<script>
    function matchFieldSelect (field) {
        var found = false;
        for (var i = 0; i < myOptions.length; i++)
            if ((found = myOptions[i].toLowerCase().indexOf(field.value.toLowerCase()) == 0))
                break;
        if (field.createTextRange) {
            var cursorKeys ="8;46;37;38;39;40;33;34;35;36;45;"
            if (cursorKeys.indexOf(event.keyCode+";") == -1) {
                var r1 = field.createTextRange()
                var oldValue = r1.text;
                var newValue = found ? myOptions[i] : oldValue;
                if (newValue != field.value) {
                    field.value = newValue
                    var rNew = field.createTextRange()
                    rNew.moveStart('character', oldValue.length)
                    rNew.select()
                }
            }
        }
    }

    // Valgmuligheder
    myOptions = new Array(<%=myOptions%>);
</script>
<input type="text" name="InputNavn" size="20" onkeyup="matchFieldSelect(this)">
Avatar billede pnr Nybegynder
29. januar 2003 - 08:09 #5
jeg takker
Avatar billede psyclown Nybegynder
29. januar 2003 - 16:28 #6
selv tak
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
Kurser inden for grundlæggende programmering

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