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 :)
I dette særtema ser vi på, hvordan cloud og AI bliver fundamentet for virksomhedernes digitale forretning, og hvordan de nye muligheder for automatisering og forretningsværdi kan udnyttes uden at miste overblik, sikkerhed og menneskelig kontrol.
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.