Avatar billede joeblack Nybegynder
16. februar 2009 - 14:50 Der er 11 kommentarer

Return andet en listbox-indhold

Hej

Jeg kæmper lidt med noget remote scripting, men er ingen javascript-ørn og har svært ved at løse denne...

Jeg har en funktion, som i et andet script virker fint og returnerer indholdet til et listbox/select.

Nu vil jeg have en anden funktion næsten magen til, der returnerer indholdet til et input-felt.

Jeg ved bare ikke, hvordan jeg gør...

Her er funktionen, der udfylder en select/listbox:

function RemoteScriptListBox(lbname,SQL)
dim comma,x,conn,rx,col1,col2
dim ret

    set conn=server.CreateObject("ADODB.Connection")
    myconn = "DRIVER={SQL Server};SERVER=xxx;UID=xxx;pwd=xxx; DATABASE=xxx;"
    conn.open myconn

    comma=""
    x=0

    ret = ret & "var lb=" & lbname & ";"

    '--create remote array
    ret = ret & "var _o0=new Array("
    Set rx = conn.Execute(SQL)
    do while not rx.eof

        col1=rx(0)
       
        MyVar = rx(1)
        if len(MyVar) = 1 then
            MyVar = "000" & MyVar
        Elseif len(MyVar) = 2 then
            MyVar = "00" & MyVar
        Elseif len(MyVar) = 3 then
            MyVar = "0" & MyVar
        End if

       
        col2=trim(cstr(MyVar & " - " & rx(2)))

        ret = ret & comma & jq(col2) & "," & jq(col1)
        comma=","

        x=x+1
        rx.movenext
    loop
    rx.close
    conn.close
    ret = ret & ");"

    'instruct javascript to populate the listbox
    ret = ret & "lb.length=0;"
    ret = ret & "var x=0;"
    ret = ret & "while (x != _o0.length) {"
    ret = ret & "lb.options[lb.length] = new Option(_o0[x],_o0[x+1]);"
    ret = ret & "x=x+2;}"

    RemoteScriptListBox = ret
End function

Kan nogen hjælpe mig ?
Avatar billede olebole Juniormester
16. februar 2009 - 14:57 #1
<ole>

Hvad er spørgsmålet? - og er det JavaScript- eller ASP-delen, du ikke kan finde ud af?

/mvh
</bole>
Avatar billede joeblack Nybegynder
16. februar 2009 - 15:05 #2
Hej (igen) olebole

Det er js-delen, som driller. Ovenstående script udfylder en select, men nu vil jeg bruge samme/en kopi af scriptet til at udfylde en <input type=text name=zz>.

Jeg kan se, at ovenstående returnerer en streng, der starter med "var lb=[lbname];var _o0=new Array(...." (altså indholdet til en select). Spørgsmålet så lige, hvordan jeg får lavet det om, så scriptet blot udfylder en input ?
Avatar billede olebole Juniormester
16. februar 2009 - 15:08 #3
Jeg har absolut ingen anelse om, hvad du taler om  =)

Hvad skal ske, hvornår - hvordan - og hvorfor?
Avatar billede joeblack Nybegynder
16. februar 2009 - 15:17 #4
OK, når jeg kalder ovenstående, får jeg indholdet til en <select> udfyldt med data fra db'en. Det virker fint.

I stedet for dette, vil jeg have scriptet til at udfylde en input (<input type="text" name="city> med mine data. ASP-delen kan jeg fint, men jeg aner ikke, hvordan jeg ændrer js-delen.

Jeg har prøvet med

ret = "documents.forms[0].city.text = 'test'

men det virker ikke....
Avatar billede joeblack Nybegynder
16. februar 2009 - 15:18 #5
og der skulle have stået...

ret = "document.getElementById('city').text='test';"
Avatar billede joeblack Nybegynder
16. februar 2009 - 15:21 #6
Og nu fik jeg det sørme til at virke....
ret = "document.getElementById('city').value='test';"

:-)
Avatar billede olebole Juniormester
16. februar 2009 - 15:22 #7
"OK, når jeg kalder ovenstående, får jeg indholdet til en <select> udfyldt med data fra db'en. Det virker fint." >> Hvad? Hvor? Hvordan? Det kan jeg ikke få øje på. Nu må du prøve at tage dig sammen og give en ordentlig forklaring
Avatar billede joeblack Nybegynder
16. februar 2009 - 15:37 #8
Jeg vil gerne prøve - jeg troede koden var selvforklarende for en haj som dig :-)

Jeg kalder funktionen "RemoteScriptListBox(lbname,SQL)"
med en onchange på en <select>. Værdien i selecten(this.value) puttes ind i SQL'en, som giver mig rx(n).

Ovenstående loop giver mig så et array, der er indholdet i <select name=[lbname]>. Og i stedet for et array, ville jeg gerne have funktionen til at returnere/udfylde værdien i et input-felt. Og det virkede så, da jeg ændrede ovenstående til blot:

function RemoteScriptListBox(lbname,SQL)
dim ret

    ret = "document.getElementById('city').value='test';"

    RemoteScriptListBox = ret

End function
Avatar billede olebole Juniormester
16. februar 2009 - 15:41 #9
Jamen, ASP-koden afvikles jo på serveren - mens JavaScript/DOM afvikles på klienten ... længe efter, dokumentet har forladt serveren
Avatar billede olebole Juniormester
16. februar 2009 - 15:42 #10
Jeg mangler stadig logik og sammenhæng i din forklaring/kode
Avatar billede joeblack Nybegynder
16. februar 2009 - 15:49 #11
Du har ret, der mangler en del forklaring. Det er remote scripting med en mængde kode, som jeg har undladt her.

Koden kan downloades her:
http://download.microsoft.com/download/asp/Install/1.0b/W982KMeXP/EN-US/rs10ben.exe

Men jeg mente/synes/troede bare ikke, at det var relevant for spørgsmålet. Men hvad ved en bager om biler...

Læg et svar - du skal have tak for opmærksomheden. Husk også at lægge et svar på mit spørgsmål fra i lørdags, hvor du også bidrog.
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

Capgemini Danmark A/S

Open Application (Denmark)

AL Sydbank A/S (tidligere Arbejdernes Landsbank)

Afdelingschef til GDPR & Tech Regulation

Forsvarsministeriets Materiel- og Indkøbsstyrelse

Cyberdivisionen søger IT-Supporter til Svanemøllen

Netcompany A/S

IT Consultant