/ 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
Hente listeværdier fra en database.
Fra : Kurt G


Dato : 01-05-07 22:42

Til at angive søgekriterie til en database bruger jeg nogle formularer,
bl.a. to lister.

Den ene har kun 8 muligheder, så dem angiver jeg selv i koden således:
<Select name="Tidsalder">
<option value="ingen"> </option>
<option value="istid">Istid</option>
osv.

Men ved den næste formular kan/skal der vælges mellem 121 forskellige
muligheder, og det er jo mange linier at skrive.
Er det muligt at lave en kode, så jeg kan hente disse valgmuligheder fra en
fil eller en database? Og i givet fald: hvordan?

Mvh Kurt



 
 
Lasse Skovsager (02-05-2007)
Kommentar
Fra : Lasse Skovsager


Dato : 02-05-07 07:52

Kurt G wrote:
> Til at angive søgekriterie til en database bruger jeg nogle
> formularer, bl.a. to lister.
>
> Den ene har kun 8 muligheder, så dem angiver jeg selv i koden
> således: <Select name="Tidsalder">
> <option value="ingen"> </option>
> <option value="istid">Istid</option>
> osv.
>
> Men ved den næste formular kan/skal der vælges mellem 121
> forskellige muligheder, og det er jo mange linier at skrive.
> Er det muligt at lave en kode, så jeg kan hente disse
> valgmuligheder fra en fil eller en database? Og i givet fald:
> hvordan?
> Mvh Kurt

Noget lign. det her:


set rs = server.createobject("ADODB.Recordset")
con= "DRIVER={Microsoft Access Driver
(*.mdb)};DBQ="&Server.MapPath("sti/til/din/databse.mdb")

SQL = "select * from options"

rs.open SQL, con

Do while not rs.eof

Response.Write rs("options")&"
--
Lasse Skovsager
www.hartr.dk - vikingegruppe i Hardsyssel


Lasse Skovsager (02-05-2007)
Kommentar
Fra : Lasse Skovsager


Dato : 02-05-07 07:57

Lasse Skovsager wrote:
> Kurt G wrote:
>> Til at angive søgekriterie til en database bruger jeg nogle
>> formularer, bl.a. to lister.
>>
>> Den ene har kun 8 muligheder, så dem angiver jeg selv i koden
>> således: <Select name="Tidsalder">
>> <option value="ingen"> </option>
>> <option value="istid">Istid</option>
>> osv.
>>
>> Men ved den næste formular kan/skal der vælges mellem 121
>> forskellige muligheder, og det er jo mange linier at skrive.
>> Er det muligt at lave en kode, så jeg kan hente disse
>> valgmuligheder fra en fil eller en database? Og i givet fald:
>> hvordan?
>> Mvh Kurt
>
> Noget lign. det her:
>
>
> set rs = server.createobject("ADODB.Recordset")
> con= "DRIVER={Microsoft Access Driver
> (*.mdb)};DBQ="&Server.MapPath("sti/til/din/databse.mdb")
>
> SQL = "select * from options"
>
> rs.open SQL, con
>
> Do while not rs.eof
>
> Response.Write rs("options")&"

nå det gik lidt hurtigt så her kommer hele koden hehe

Noget lign. det her:

<%
set rs = server.createobject("ADODB.Recordset")
con= "DRIVER={Microsoft Access Driver
(*.mdb)};DBQ="&Server.MapPath("sti/til/din/databse.mdb")

SQL = "select * from options"

rs.open SQL, con

if not rs.eof then

response.write "<select name='xx'>"

Do while not rs.eof

Response.Write "<option
value='"&rs("id")&"'>rs("choices")&"</option>"

rs.movenext
loop

response.write "</select>"
end if

%>
Dette forudsætter at din database hedder options, hvori der er to
tabeller der hedder id og choices hvor id er primærnøgle og at
det er en acces database



--
Lasse Skovsager
www.hartr.dk - vikingegruppe i Hardsyssel


Kurt G (02-05-2007)
Kommentar
Fra : Kurt G


Dato : 02-05-07 18:29

> <%
> set rs = server.createobject("ADODB.Recordset")
> con= "DRIVER={Microsoft Access Driver
> (*.mdb)};DBQ="&Server.MapPath("sti/til/din/databse.mdb")
>
> SQL = "select * from options"
>
> rs.open SQL, con
>
> if not rs.eof then
>
> response.write "<select name='xx'>"
>
> Do while not rs.eof
>
> Response.Write "<option value='"&rs("id")&"'>rs("choices")&"</option>"
>
> rs.movenext
> loop
>
> response.write "</select>"
> end if
>
> %>
> Dette forudsætter at din database hedder options, hvori der er to tabeller
> der hedder id og choices hvor id er primærnøgle og at det er en acces
> database
>
>
>
> --
> Lasse Skovsager
> www.hartr.dk - vikingegruppe i Hardsyssel

Det vil jeg se, om jeg kan få til at virke.
Tak!
Kurt



Kurt G (04-05-2007)
Kommentar
Fra : Kurt G


Dato : 04-05-07 18:03

"Lasse Skovsager" <lasse@skovsager.dk> skrev i en meddelelse
news:46383646$0$90262
> nå det gik lidt hurtigt så her kommer hele koden hehe
>
> Noget lign. det her:
>
> <%
> set rs = server.createobject("ADODB.Recordset")
> con= "DRIVER={Microsoft Access Driver
> (*.mdb)};DBQ="&Server.MapPath("sti/til/din/databse.mdb")
>
> SQL = "select * from options"
>
> rs.open SQL, con
>
> if not rs.eof then
>
> response.write "<select name='xx'>"
>
> Do while not rs.eof
>
> Response.Write "<option value='"&rs("id")&"'>rs("choices")&"</option>"
>
> rs.movenext
> loop
>
> response.write "</select>"
> end if
>
> %>
> Dette forudsætter at din database hedder options, hvori der er to tabeller
> der hedder id og choices hvor id er primærnøgle og at det er en acces
> database
Compileren kan ikke lide linien:
value='"&rs("id")&"'>rs("choices")&"</option>"
Det er de to ', der giver problemer.

Jeg har prøvet med " og (), men det batter ikke.
Hvorfor bruges der '?

Mvh Kurt



Jørn Andersen (04-05-2007)
Kommentar
Fra : Jørn Andersen


Dato : 04-05-07 18:48

On Fri, 4 May 2007 19:02:40 +0200, "Kurt G" <kurt_g@guldbaek.net> wrote:

>> Response.Write "<option value='"&rs("id")&"'>rs("choices")&"</option>"
<snip>
>Compileren kan ikke lide linien:
> value='"&rs("id")&"'>rs("choices")&"</option>"
>
>Det er de to ', der giver problemer.

Hvilken fejlmeddelelse giver den?
Send altid fuld fejlmeddelelse, når du spørger om hjælp, ellers bliver
det en gættekonkurrence

>Jeg har prøvet med " og (), men det batter ikke.

Prøv med:
Response.Write "<option value=""" & rs("id") & """>" & rs("choices") &
"</option>"
- det hele på én linie.
Der mangler
" &
foran rs("choices")

>Hvorfor bruges der '?

Det bruger nogle, når det er svært at hitte rede i, hvor mange
anførselstegn ("), der skal bruges. Ét ' svarer til "".

Jeg kan ikke lige gennemskue, hvorfor den giver problemer her, men i
andre sammenhænge betyder ' jo, at det efterfølgende er en kommenatr,
som ikke skal kompileres. Det burde bare ikke være et problem her, hvor
den jo er inde i en streng - ?

Good luck!

--
Jørn Andersen,
Brønshøj

Kurt G (04-05-2007)
Kommentar
Fra : Kurt G


Dato : 04-05-07 22:11

"Jørn Andersen" <jorn@jorna.dk> skrev i en meddelelse
news:50sm33h5svtq14401m1pcl1gguj8m3r8qs@4ax.com...
> On Fri, 4 May 2007 19:02:40 +0200, "Kurt G" <kurt_g@guldbaek.net> wrote:
>
>>> Response.Write "<option value='"&rs("id")&"'>rs("choices")&"</option>"
> <snip>
>>Compileren kan ikke lide linien:
>> value='"&rs("id")&"'>rs("choices")&"</option>"
>>
>>Det er de to ', der giver problemer.
>
> Hvilken fejlmeddelelse giver den?
> Send altid fuld fejlmeddelelse, når du spørger om hjælp, ellers bliver
> det en gættekonkurrence

Ja, undskyld, det var tåbeligt af mig!!
Den gav denne:
Slut på sætning var ventet
/SLARA/Skalk/test.asp, line 52, column 52
Response.Write "<option value='"&rs("Index")&"'>rs("Emne")&"</option>"
---------------------------------------------------^

>
>>Jeg har prøvet med " og (), men det batter ikke.
>
> Prøv med:
> Response.Write "<option value=""" & rs("id") & """>" & rs("choices") &
> "</option>"
> - det hele på én linie.
> Der mangler
> " &
> foran rs("choices")

Det hjalp med den tilføjelse, nu virker der.

>
>>Hvorfor bruges der '?
>
> Det bruger nogle, når det er svært at hitte rede i, hvor mange
> anførselstegn ("), der skal bruges. Ét ' svarer til "".

Altså ét ' svarer til to "?

> Jeg kan ikke lige gennemskue, hvorfor den giver problemer her, men i
> andre sammenhænge betyder ' jo, at det efterfølgende er en kommenatr,
> som ikke skal kompileres. Det burde bare ikke være et problem her, hvor
> den jo er inde i en streng - ?
>
> Good luck!
>
> --
> Jørn Andersen,
> Brønshøj

Tak for hjælpen, det gør det meget nemmere at udvide/ændre i listen!
Mvh Kurt



Jørn Andersen (04-05-2007)
Kommentar
Fra : Jørn Andersen


Dato : 04-05-07 22:49

On Fri, 4 May 2007 23:10:34 +0200, "Kurt G" <kurt_g@guldbaek.net> wrote:

>> Det bruger nogle, når det er svært at hitte rede i, hvor mange
>> anførselstegn ("), der skal bruges. Ét ' svarer til "".
>
>Altså ét ' svarer til to "?

Ja, det var den *meget* korte forklaring.

Den lidt længere:
I ASP bruges " til at markere en tekst-streng:
myVar = "tekst"
- tekst-strengen starter ved den første " og slutter ved den sidste.

Men hvad så, hvis man skal have en " i tekst-strengen, fx:
Hun bliver kaldt "Musse"
- ?

Her er reglen så, at man escape'r en " med en ekstra " - fx:
myVar = "Hun bliver kaldt ""Musse"""
- den første " er start på tekst-strengen
- de to næste er en escape't "
- de to næste er også en escape't "
- den sidste " er slut på tekst-strengen

Det kan fx bruge i HTML, hvor man kan bruge " til at omkranse parametre:
myVar = "<option value=""hest"">"
- forklaring: Akkurat lige som før.

Det bliver så lidt sjovere, hvis dyret allerede ligger i en variabel:
myAnimal = "hest"
myVar = "<option value=""" & myAnimal & """>"

Her dannes myVar af:
a) en tekststreng: "<option value="""
b )en variabel: myAnimal
c) en tekststreng: """>"
- som klistres sammen med &'er
I a) og c) er første og sidste " start og slut på tekst-strenge, mens ""
inde i strengene er en escape't ".

Det udskrevne bliver:
<option value="hest">

Nu begynder det måske at blive lidt sværere at holde styr på "-erne.
Her er det så, at nogen udnytter, at HTML er ligeglad med, om man bruger
enkelt- eller dobbelt-anførselstegn (' eller ")

Det kan så i stedet skrives som:
myVar = "<option value='" & myAnimal & "'>"
- alle "-er er start og slut på tekst-strenge - og man slipper for at
escape "-erne.

Det udskrevne bliver så i stedet:
<option value='hest'>
- hvilket i HTML er helt OK.

Så man kan sige at:
' = "
i HTML, men da " skal escape's med en ekstra " i ASP, bliver det i ASP
til:
' = ""

Det kan godt betale sig lige at bruge lidt tid på at blive fortrolig med
anvendelsen af anførselstegn i ASP, da det bruges mange steder (som fx
dit eget eksempel viser). Det bruges fx også *meget ofte*, når man skal
danne SQL-sætninger.

Så læs det et par gange, hvis du ikke lige fanger den første gang.
Og hvis min forklaring er for dårlig, så skriv igen.


Prøv selv at fortolke:
a) myVar = ""
b) myVar = """"
c) myVar = """

a) og b) er gyldig ASP-syntax.
c) vil give fejl (Unterminated string constant)


OBS:
Man kan ikke skrive:
myVar = 'tekst'
i ASP, da ' bruges til at markere starten på en kommentar, hvor alt
efter ' ikke skal kompileres. Compileren vil blot læse det som:
myVar =
- og kaste en fejl-meddelelse.

OBS2:
Personligt foretrækker jeg, at min HTML skriver parametre i ", så jeg
plejer at escape.

Good luck!

--
Jørn Andersen,
Brønshøj

Kurt G (06-05-2007)
Kommentar
Fra : Kurt G


Dato : 06-05-07 10:42

"Jørn Andersen" <jorn@jorna.dk> skrev i en meddelelse
> Så læs det et par gange, hvis du ikke lige fanger den første gang.

Som du forklarer det, er det fint forståeligt. Men det kan nu sommetider
knibe at huske det!

Tak for det meget frundige svar.
/Kurt



Søg
Reklame
Statistik
Spørgsmål : 177459
Tips : 31964
Nyheder : 719565
Indlæg : 6408182
Brugere : 218881

Månedens bedste
Årets bedste
Sidste års bedste