|
| 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
| |
|
|