04. juni 2003 - 19:51Der er
12 kommentarer og 1 løsning
tabel > array > dropdown
Hej,
Nogen der har en god idé til hvordan jeg kan returnere posterne fra et SQL kald til en array og efterfølgende smide værdierne i en <select> menu ? Det skal være på en performancemæssig god måde :)
Med version 7 af TeamShare tager Lector næste skridt og bygger en platform for AI-agenter, der i højere grad kan følge medarbejderen gennem hele arbejdsprocessen.
SQL = "SELECT id, navn FROM tabel" Set rs = Conn.Exeute(SQL) if not rs.eof then arrRecords = rs.getrows() end if rs.close set rs = nothing %> <select name="valg"> <% for i = 0 to ubound(arrRecords,2) %> <option value="<%=arrRecords(0,i)%>"><%=arrRecords(1,i)%></option> <% next %> </select>
Synes godt om
Slettet bruger
04. juni 2003 - 20:11#3
eagleeye > Det var noget i den stil jeg tænkte på, men jeg får denne fejl : Fejltype: ADODB.Connection (0x800A0BB9) Argumenterne har en forkert type eller er uden for det angivne område, eller der er opstået en konflikt mellem dem.
hov jeg kan ikke stave der mangler et c i executee i denne linje:
Set rs = Conn.Execute(SQL)
Synes godt om
Slettet bruger
04. juni 2003 - 20:15#5
heh, så den heller ikke.. Nå, men nu får jeg "Der opstod en Microsoft VBScript-kørselsfejl (0x800A0009) Indekset er uden for området: '1'" i linien <option value="<%=arrRecords(0,i)%>"><%=arrRecords(1,i)%></option>
Synes godt om
Slettet bruger
04. juni 2003 - 20:15#6
ahh, det er seføli' fordi jeg kun henter en attribut og derfor kun får et 1d array.. Har fixet det nu - tak for hjælpen
Du kan faktisk bruge GetStirng og lidt snide så gøre det kortere sådan her:
SQL = "SELECT id, navn FROM tabelhghg" Set rs = Conn.Execute(SQL) if not rs.eof then optionStr = "<option value=""" & rs.GetString(,,""">","</option><option value=""") optionStr = Left(optionStr,len(optionStr)-15 ) 'længden af <option value=" end if rs.close set rs = nothing %> <select name="valg"><%=optionStr%></select>
Den sidste kræver du hender to kolonne ud, den føste som ryger i value på option og den anden som bruge som det som vises. <option value=ID>NAVN</option>
Synes godt om
Slettet bruger
04. juni 2003 - 20:22#9
hmm, sidder lidt og tænker på om det ikke ville være smartere at lave en metode der modtager tabel, attribut i parameterlisten og så kalde den funktion når man fik brug for den?
Synes godt om
Slettet bruger
04. juni 2003 - 20:48#10
har lige strikket dette sammen:
<% 'Funktion til at oprette dropdown menu udfra databasetabel function lavDropdown(paramTabel,paramAttribut) tabel = paramTabel attrib = paramAttribut SQL="SELECT " & attrib & " FROM " & tabel & "" Response.write(SQL) Response.end set rs = Conn.Execute(SQL) if not rs.eof then arrRecords = rs.getrows() end if rs.close set rs = nothing '//Opbygger listen%> <select name="<%= paramAttribut%>"> <% for i = 0 to ubound(arrRecords,2) %> <option value="<%= arrRecords(0,i)%>"><%= arrRecords(0,i)%></option> <% next response.write "</select>" end function %>
Synes godt om
Slettet bruger
04. juni 2003 - 20:48#11
men jeg kan ikke få variablene i parameterlisten til at indgå i min SQL streng - hvordan gør man det?
Så skal du kalde din function: lavDropdown("tabelnavn","id,navn")
Synes godt om
Slettet bruger
04. juni 2003 - 20:51#13
hehe.. naturligvis tak igen :)
Synes godt om
Ny brugerNybegynder
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.