Avatar billede draken Nybegynder
11. februar 2002 - 10:32 Der er 6 kommentarer og
1 løsning

Dropdown-Function til generering af utallige dropdowns!

Hvordan får jeg denne dropdown til at virke?
Jeg har en del dropdown der skal udfyldes fra en DB. Så jeg havde tænkt mig at lave en rutine der kunne genbruges.
Spørgsmål: Hvordan sætter man en variabel ind i et Recordset - a'la oRS("MinVariabel").


<%
tempConn= *databaseconnection*

'Generate Dropdown
'Example: genDropdown(CarMakeID, CarMake)
Sub genDropdown(DDitemID, DDitem)
Set oConn=Server.CreateObject("ADODB.Connection")
oConn.Open tempConn
strSQL = "Select * From tbl" & DDitem
Set oRs = oConn.Execute(strSQL)

While NOT oRs.EOF
  genDropdown = genDropdown & "<option value=" & oRs(DDitemID) & ">" _
  & oRs(DDitem) & "</option>"  & VbCrLf
  oRs.MoveNext
Wend

oRs.Close
oConn.Close
Set oRs = Nothing
Set oConn = Nothing
End Sub
%>
<html>
<head>
<title>Untitled</title>
</head>
<body>
<select name="MyItem">
<option>--- MyItems ----</option>
<% Call genDropdown(MyItemID, MyItem)%>
</select>
</body>
</html>
Avatar billede coltau Juniormester
11. februar 2002 - 10:54 #1
oRS("MinVariabel") = strMinVar
Avatar billede draken Nybegynder
11. februar 2002 - 11:08 #2
Jeg skal køre sub'en med flere variabler, fx:
MinVar="bananer" i første kørsel og jeg skal spørge til recordsettet oRs("bananer")
I næste kørsel er MinVar="æbler" og jeg skal spørge efter oRs("Æbler")
Hvordan får jeg forespørgslerne inde i While/Wend til at være henholdsvis oRs("bananer") i første kørsel og oRs("Æbler") i næste?
Avatar billede coltau Juniormester
11. februar 2002 - 12:35 #3
Jeg forstår ikke helt spørgsmålet.
Avatar billede draken Nybegynder
11. februar 2002 - 13:37 #4
Okay!
Jeg har to dropdown boxe - en til fx værktøj (tools) og en til Frugter (Fruits).
Jeg vil have en function/sub som jeg kan kalde når jeg skal have generet en dropdown box med tools, fruits, cows osv.
Altså, ønsker jeg en tools-dropdown i min HTML, så skriver jeg
<% Call genDropdown(toolID,tool)%>
Dette skulle gerne kalde en Sub som ovennævte!
I denne Sub skulle der så gerne genereres output på oRs("toolID") og oRs("tool") som så fyldes ind i dropdown'en.

Spørsmålet er så hvordan får jeg min "toolID" ind i DDitemID
og videre til oRs("DDitemID") - Det skulle ende med at der reelt står oRs("toolID") inde i Sub'en

Er det lidt klarere nu!
Avatar billede draken Nybegynder
11. februar 2002 - 15:17 #5
AnyOne?
Avatar billede coltau Juniormester
11. februar 2002 - 19:23 #6
Jeg håber du kan bruge nedenstående:
<%
Sub genDropdown(ATableName, AFieldName, ASelectedID)
' ATableName = Tablenavn i database
' AFieldName = Feltnavn i tabel, som skal vises i dropdownlisten
' ASelectedID = Det valgte ID fra tabellen - hvis der var valgt et
  Set oConn=Server.CreateObject("ADODB.Connection")
  oConn.Open "Driver={Microsoft Access Driver (*.mdb)}; DBQ=" & Server.MapPath("test.mdb")
  strSQL = "Select * From " & ATableName ' tblfrugt, tbltools mv.
  Set oRs = oConn.Execute(strSQL)
  While not oRs.EOF
    if CInt(ASelectedID) = CInt(oRs("ID")) then
      Response.Write "<option selected value=" & oRs("ID") & ">" & oRs(AFieldName) & "</option>"  & VbCrLf
    else
      Response.Write "<option value=" & oRs("ID") & ">" & oRs(AFieldName) & "</option>"  & VbCrLf
    end if
    oRs.MoveNext
  Wend
  oRs.Close
  oConn.Close
  Set oRs = Nothing
  Set oConn = Nothing
End Sub
%>

<html>
<head>
<title>Untitled</title>
</head>
<body>
<% ' Hvis der er valgt en vises den
  if Request.QueryString("mode") <> "" then
    strSel = request.Form("MyItem")
    Response.Write("Du valgte: " & strSel)
  end if
  Response.Write("<br>")
%>
  <FORM METHOD="POST" ACTION="dropdown.asp?mode=check">
  <select name="MyItem">
  <option>--- MyItems ----</option>
  <% Call genDropdown("tbltools", "navn", strSel)%>
  </select>
  <input type="submit" name="submit">
  </form>
</body>
</html>
Avatar billede draken Nybegynder
12. februar 2002 - 13:41 #7
1000 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