Avatar billede pb1 Nybegynder
27. august 2007 - 12:20 Der er 10 kommentarer og
1 løsning

Autosugestionbox via fra SQL database

Hej exp,

Jeg har downloadet dette autosugestion script fra: http://tomcoote.co.uk/AutoSuggestBox.aspx

Det virker perfekt, men hvordan hiver jeg dataen ud af en SQL database istedet for statisk værdier fra javascript filen.

CountryCodes.js returner alle lande, men hvis nu jeg vil hente de lande(eller andet data) fra en database.

Jeg har et java script der kalder et php script og retunere en enkel string via http.get()

Men nu skal den jo retturner et array!? Nogle der kan hjælpe med det?

id=land

function countryCodes() {

    return CodeCountryPairs = new Array (
            'AD=Andorra',

            'AE=United Arab Emirates',

            'AF=Afghanistan',

            'AG=Antigua and Barbuda',

            'AI=Anguilla',

            'AL=Albania',

            'AM=Armenia',

            'AN=Netherlands Antilles',

            'AO=Angola',

            'AQ=Antarctica',

            'AR=Argentina'
        );
}
Avatar billede Slettet bruger
27. august 2007 - 12:53 #1
Du kan bruge http.get() og eval.

Her er et eksempel, hvor jeg bruger en string (i stedet for http.get()), så syntaxen kan ses - der er brugt json syntax (se evt. http://www.json.org/js.html).

function countryCodes() {
    var stringSomIndeholderHttpGetResultat = "['AD=Andorra','AE=United Arab Emirates','AF=Afghanistan','AG=Antigua and Barbuda','AI=Anguilla','AL=Albania','AM=Armenia','AN=Netherlands Antilles','AO=Angola','AQ=Antarctica','AR=Argentina']";
    return eval(stringSomIndeholderHttpGetResultat);
}
Avatar billede pb1 Nybegynder
27. august 2007 - 13:40 #2
Er ikke sikker på jeg forstår koden..

'AD=Andorra','AE=United Arab Emirates','AF=Afghanistan','AG=Antigua and Barbuda','AI=Anguilla','AL=Albania','AM=Armenia','AN=Netherlands Antilles','AO=Angola','AQ=Antarctica','AR=Argentina'

alt det skal hentes fra databasen.

AD=Andorra
United Arab Emirates
AF=Afghanistan
AG=Antigua and Barbuda
AI=Anguilla
AL=Albania
AM=Armenia
Avatar billede olebole Juniormester
27. august 2007 - 14:45 #3
<ole>

Scriptet bygger på oldgammel kode, der har været forældet de seneste 8-9 år og som forlængst burde være glemt - ligesom det er komplet inkompatibelt med XHTML

/mvh
</bole>
Avatar billede pb1 Nybegynder
27. august 2007 - 15:05 #4
Har du så noget kode eller et link til noget som er vild nyt?
Avatar billede olebole Juniormester
27. august 2007 - 15:18 #5
Nej, men i stedet for at bruge den invalide innerHTML-property, bør du indsætte elementer og tekst med DOM.

Endvidere bør der ikke ved en omskrivning sendes f.eks. XMLHttpRequests som method="get", men som method="post" ... ellers mister IE hukommelse.

Du bør heller ikke hente data fra en DB på keyboard-events - men ved hjælp af en timer. Ellers får du uhensigtsmæssigt mange serverkald.

Sidst, men ikke mindst, kan jeg slet ikke få øje på, scriptet, du linker til, fungerer. Hvis jeg taster 'd' som det første bogstav, burde jeg kun få foreslået lande, der begynder med 'd'. I stedet får jeg returneret allemulige lande, hvis navn indeholder et 'd' ... hvad skal jeg bruge det til?  =)
Avatar billede olebole Juniormester
27. august 2007 - 15:19 #6
- men hvorfor ikke bare bruge en dropdown, som er let at bruge, let at lave og som folk er vandt til at bruge alle andre steder?  ;o)
Avatar billede pb1 Nybegynder
27. august 2007 - 15:25 #7
Fordi det er nemmere for brugeren..
Nogle der kan hjælpe?
Avatar billede olebole Juniormester
27. august 2007 - 15:36 #8
Er det nemmere for brugeren at begynde at skrive 'Danmark' og få foreslået næsten 80 lande, der ikke begynder med 'd' - plus en lille håndfuld, der gør?  =)

Det er svært at finde brugervenligheden i det. Desuden er en dropdown de facto standardmetode til landevalg over hele WWW samt alle programmer.

Det er sikkert meget sjovt at lege med, men hvorfor forvirre dine brugere mere end højst nødvendigt?  :)
Avatar billede neoman Novice
27. august 2007 - 15:41 #9
olebole - pb1 har en pointe. Hvis du skal have fat i f.eks. Zambia, så er 90 % af brugerne ikke klar over at de bare kan taste Z adskillige gange, men åbner hele den lange liste og scroller..og tit klikker på det forkerte og starter igen. Ideen med en autosuggest er vel at tage hånd om alle, også dem som ikke er helt vågne når de surfer:)
Avatar billede pb1 Nybegynder
27. august 2007 - 16:11 #10
Nu skal jeg helelr ikke bruge det til lande... jeg vil jo have den til at hente data fra min database..
Avatar billede pb1 Nybegynder
29. oktober 2007 - 23:10 #11
lukker
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