22. juli 2004 - 09:50Der er
12 kommentarer og 1 løsning
Hente værdi fra db ind i dropdown-boks
Jeg har lavet en formular, hvor jeg henter værdier fra en db ind i en række felter, hvorefter værdierne kan redigeres, og derefter sendes ind i db´en igen i redigeret form. Jeg ønsker nu, at kunne hente en værdi ind fra db´en ind i dropdown-boks. Jeg kender på forhånd hvilke værdier denne variabel kan have. Derfor ønsker jeg på forhånd at kunne definere hvilke værdier, dropdown-boksen skal indeholde. Det jeg gerne vil have er, at den værdi i db´en som en post har, automatisk bliver valgt som selected værdi i dropdown-boksen, men at brugeren af formularen herefter selv kan ændre denne ved at vælge en anden værdi i dropdown-boksen.
Min kode ser således ud. <% intID = Request.Querystring("id") strSelectSkemaSQL = "SELECT * FROM fototabel WHERE id = " & intID & "" Set Conn = Server.CreateObject("ADODB.Connection") Conn.Open "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" & Server.MapPath ("foto.mdb") Set objSkemaRS = Conn.Execute(strSelectSkemaSQL) %> Normalt henter jeg data ind i et tekst-felt således: <input maxlength=30 size=25 name=status value="<%=objSkemaRS("status")%>">
keysersoze hvorfor er der behov for at gå ind og ændre min select *? Jeg har jo flere værdier fra db´en jeg trækker i en lang række andre felter, hvor der ikke er nogen problemer med den pågældende kode.
hvis alle værdierne der skal ligge i dropdown-boksen alligevel ligger i databasen er der ingen grund til at skrive det manuelt så kan man lige så godt loope det igennem fra databasen - det skal også kun ses som et forslag hvordan man kunne gøre.
Du kan sagtens opbygge det på en anden måde end mit forslag :)
option-boksen skal i mit eksempel nok også se sådan ud i stedet;
Jeg vil meget gerne bygge videre på min eksisterende kode. Har viderebearbejdet min kode således: <% intID = Request.Querystring("id") intID2 = Request.Querystring("id2") strSelectSkemaSQL = "SELECT * FROM tabel WHERE id = " & intID & "" Set Conn = Server.CreateObject("ADODB.Connection") Conn.Open "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" & Server.MapPath ("tabel.mdb") Set objSkemaRS = Conn.Execute(strSelectSkemaSQL)
det skal jeg ikke lige kunne sige - men ovenstående stykke kode virker (undskyld udtrykket) som om du har galt i den forkert ende af ASP. Det er en komplet uheldig måde at opbygge ASP på... forestil dig et arbejde du skulle igennem hvis du havde en dropdownboks med 50 forskellige values der alle skulle kunne være selected ud fra en querystring?
hvor i ovenstående for du inst1, inst2, inst3 og inst4 fra?
Hvordan skal min kode så se ud, hvis jeg ud over comboboksen også skal trække data ind i alm. tekst-felter, hvor de skal kunne redigeres og herefter sendes tilbage i db´en? I dag trækker jeg mine andre variable ind således:
jeg tror ikke jeg er 100% med på hvad du mener - om du skal hive data ud og lægge i en dropdown, i et tekstfelt eller begge ting på en gang så gør du præcis det samme?
Sagen er den at jeg har et spørgeskema som skal kunne redigeres. Når brugeren har svaret på spørgeskemaet, som bl.a. indeholder flere dropdown-bokse, skal denne bruger igen kunne redigere sit svar. I den forbindelse ønsker jeg, at dataene hentes ind i en ny form, hvor de kan redigeres. I denne form ønsker jeg, at i de felter hvor jeg ved der ikke findes mere end 2-5 svarmuligheder, placeres disse kendte værdier i en dropdownboks, hvor netop brugerens svar er selected. Udover dropdown-boksene har endvidere flere tekstfelter i formen som skal udfyldes, men det fungerer allerede uden problemer i dag!
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.