/ Forside / Teknologi / Udvikling / ASP / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
ASP
#NavnPoint
smorch 9259
Harlekin 1866
molokyle 1040
Steffanst.. 758
gandalf 657
smilly 564
gibson 560
cumano 530
MouseKeep.. 480
10  Random 410
Drop down list
Fra : Jeppe


Dato : 12-11-02 18:25

Hej

Er der nogen der ved hvordan jeg henter data fra min access 2000 db ned i
min drop down list.

Pt. ser listen sådanne ud, men jeg ønsker at hente dataen fra min db i
stedet for at skrive den manuelt.

<select name = "rating">
<option selected = "selected">Amazing</option>
<option>10</option>
<option>9</option>
<option>8</option>
<option>7</option>
<option>6</option>
<option>5</option>
<option>4</option>
<option>3</option>
<option>2</option>
<option>1</option>
<option>Awful</option>
</select>

Tak
Jeppe



 
 
Michael Hyldsgaard (12-11-2002)
Kommentar
Fra : Michael Hyldsgaard


Dato : 12-11-02 20:47

"Jeppe" <j@j.dk> wrote in message
news:3dd13982$0$35953$edfadb0f@dread13.news.tele.dk...
>
> Er der nogen der ved hvordan jeg henter data fra min access 2000 db ned i
> min drop down list.
>

<%
Dim con, rs, strSQL

Set con = Server.CreateObject("ADODB.Connection")
Set rs = Server.CreateObject("ADODB.Recordset")

con.Open "Provider=Microsoft.Jet.OLEDB.4.0;" &_
"Data Source=" & Server.MapPath("/db/database.mdb") & ";" &_
"Persist Security Info=False;"

strSQL = "SELECT * FROM dropdowntabel"

rs.Open strSQL, con, 3, 1, 1
%>
<select name = "rating">
<%
While Not rs.EOF
%>
<option><%= rs("dropdownvalue") %></option>
<%
rs.MoveNext
Wend
%>
</select>
<%
rs.Close
con.Close
%>

// Michael
// http://www.jirty.dk



Jeppe (12-11-2002)
Kommentar
Fra : Jeppe


Dato : 12-11-02 21:21

Tusind tak, men hvad nu hvis der er to drop down bokse som er afhængige af
hinanden?

----------------------------------------------------------------------------
--------------

"Michael Hyldsgaard" <michael@jirty.dk> wrote in message
news:aqrm0f$er0$1@sunsite.dk...
> "Jeppe" <j@j.dk> wrote in message
> news:3dd13982$0$35953$edfadb0f@dread13.news.tele.dk...
> >
> > Er der nogen der ved hvordan jeg henter data fra min access 2000 db ned
i
> > min drop down list.
> >
>
> <%
> Dim con, rs, strSQL
>
> Set con = Server.CreateObject("ADODB.Connection")
> Set rs = Server.CreateObject("ADODB.Recordset")
>
> con.Open "Provider=Microsoft.Jet.OLEDB.4.0;" &_
> "Data Source=" & Server.MapPath("/db/database.mdb") & ";" &_
> "Persist Security Info=False;"
>
> strSQL = "SELECT * FROM dropdowntabel"
>
> rs.Open strSQL, con, 3, 1, 1
> %>
> <select name = "rating">
> <%
> While Not rs.EOF
> %>
> <option><%= rs("dropdownvalue") %></option>
> <%
> rs.MoveNext
> Wend
> %>
> </select>
> <%
> rs.Close
> con.Close
> %>
>
> // Michael
> // http://www.jirty.dk
>
>



Michael Hyldsgaard (12-11-2002)
Kommentar
Fra : Michael Hyldsgaard


Dato : 12-11-02 22:36

"Jeppe" <j@j.dk> wrote in message
news:3dd162a8$0$63880$edfadb0f@dread15.news.tele.dk...
> Tusind tak, men hvad nu hvis der er to drop down bokse som er afhængige af
> hinanden?

Hmm... det må du nok lige forklare lidt nærmere.

// Michael
// http://www.jirty.dk




Jens Gyldenkærne Cla~ (12-11-2002)
Kommentar
Fra : Jens Gyldenkærne Cla~


Dato : 12-11-02 23:06

Jeppe skrev:

> Tusind tak, men hvad nu hvis der er to drop down bokse som er
> afhængige af hinanden?

Typisk er det vel en boks der afhænger af en anden. Det klares med
at hente værdierne for boks1 først og opdatere siden når der vælges
noget dér. Først efter valget i boks1 udfylder man boks2.

PS: Kig gerne på min signatur inden du svarer.
--
Jens Gyldenkærne Clausen
Svar venligst under det du citerer, og citer kun det der er
nødvendigt for at forstå dit svar i sammenhængen. Se hvorfor og
hvordan på http://usenet.dk/netikette/citatteknik.html

Jeppe (13-11-2002)
Kommentar
Fra : Jeppe


Dato : 13-11-02 18:07

Typisk er det vel en boks der afhænger af en anden. Det klares med
at hente værdierne for boks1 først og opdatere siden når der vælges
noget dér. Først efter valget i boks1 udfylder man boks2.

Jeg har denne kode. Hvordan opdaterer jeg siden og henter den værdi der
ligger i min drop down boks?

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
<head>
<title>Opret bestilling</title>
</head>
<body>

<br>

<select name = "rating">
<%
' Databaseforbindelse - husk at angive sti til din database
Set Conn = Server.CreateObject("ADODB.Connection")
DSN = "DRIVER={Microsoft Access Driver (*.mdb)}; "
DSN = DSN & "DBQ=" & Server.MapPath("db.mdb")
Conn.Open DSN

' SQL forespørgsel
strSQL = "Select Tittel from Bog where premiere <=date() order by Tittel"
' Udfør forespørgsel (rs indeholder nu resultatet)
Set rs = Conn.Execute(strSQL)

' Gennemløb Recordset (rs) med en løkke
Do
%>
<option selected = "selected"><%Response.Write
rs("Tittel")%></option>
<%
' Gå til næste Record i rs
rs.MoveNext

' Fortsæt indtil rs er gennemløbet (EOF = End Of File)
Loop While Not rs.EOF

' Luk databaseforbindelse
Conn.Close
Set Conn = Nothing
%>
</select>

<br>
</body>
</html>









Jens Gyldenkærne Cla~ (14-11-2002)
Kommentar
Fra : Jens Gyldenkærne Cla~


Dato : 14-11-02 00:10

Jeppe skrev:

> Typisk er det vel en boks der afhænger af en anden.

.... nej - ovenstående skrev jeg. Citater skal markeres med en ">"
foran hver citatlinje. Citerer man et citat kommer der endnu en ">"
i front - på den måde kan man med antallet af ">"-er se hvem der
har skrevet citatet (eller i hvert fald se hvor mange niveauer man
skal tilbage for at finde forfatteren). Du skal indstille dit
program så det indsætter ">" foran citater. Hvis du ikke selv kan
finde indstillingen kan du få hjælp i <news:dk.velkommen> eller
<news:dk.edb.internet.software.mail+news.outlook-express>.

(til gengæld er det godt at du er begyndt at svare nedenunder
citaterne).

> Jeg har denne kode. Hvordan opdaterer jeg siden og henter den
> værdi der ligger i min drop down boks?

Først og fremmest mangler du en <form>-kode. Uden den kan du ikke
få siden til at gøre noget som helst. Prøv med følgende:

<form action="select.asp">

(her er select.asp navnet på den fil du arbejder med). Formkoden
skal afsluttes med et </form> - men det skal først være efter de
elementer som hører til formen. Form-elementer er <input...> [1],
textarea og select. Din select-kode skal altså være inden i
<form>...</form>.

> Do
> %>
> <option selected ="selected">

Lige nu sætter du samtlige poster som selected. Det er vist ikke
meningen.

I første ombæring skal du bare skrive selectlisten ud - så der
behøver du slet ikke have nogen selected="selected". Men hvis du
skal aflæse en værdi i feltet, så skal du lægge en if-betingelse
ind, således at kun den værdi der er valgt også bliver markeret.

Når du submitter formen sender den indholdet af felterne til siden
man har valgt under <form action="sidenavn.her">. Du skal her vælge
det samme navn som selve filen her - altså at formen sender data
til sig selv. Med denne formular vil siden komme til at hedde
"select.asp?rating=Blablabla". Alle felter i formen står efter
spørgsmålstegnet, og de værdier de er tildelt står efter feltnavnet
og et lighedstegn. Du kan få fat i værdierne ved at bruge
Request.Querystring("feltnavn").

For at gøre en kort historie lang skal du øverst i dit dokument
tilføje:

' Erklær en variabel til den valgte værdi
Dim valgtRating

' Læg den valgte værdi over i variablen
valgtRating = Request.Querystring("rating")


Nede i din løkke bruger du så variablen valgtRating til at
undersøge om databaseværdien passer med den værdi du har i
variablen:

<option<% If rs("Tittel") = valgtRating Then %>
selected="selected"<% End If %>>


<%Response.Write
> rs("Tittel")%></option>

> ' Fortsæt indtil rs er gennemløbet (EOF = End Of File)
> Loop While Not rs.EOF

Du bør sætte løkkebetingelse (while not rs.EOF) op øverst - efter
"Do". Hvis du af en eller anden årsag får et tomt postsæt vil din
nuværende løkke først "opdage" det når løkken er kørt en gang
igennem - og det vil give en fejl, fordi du ikke kan hente værdier
fra et tomt postsæt.

I stedet for

DO

' ting og sager

Loop While Not rs.EOF

Skal du derfor skrive:

Do While Not rs.EOF

   ' ting og sager

Loop

eller bare:

While Not rs.EOF

   ' gør ting og sager

Wend


> </select>

Her skal du så have en submitknap (se en formtutorial) - og
formentlig også din anden selectboks. Men start lige med at få det
til at virke med den første...

Noter:
======

[1] <input> findes i mange varianter - se mere fx på
<http://www.html.dk/artikler/00011/>
--
Jens Gyldenkærne Clausen
MF (medlem af FIDUSO - www.fiduso.dk)
I ovenstående tekst benyttes nyt komma.

Søg
Reklame
Statistik
Spørgsmål : 177560
Tips : 31968
Nyheder : 719565
Indlæg : 6408946
Brugere : 218888

Månedens bedste
Årets bedste
Sidste års bedste