/ 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
betingelser ( if else )
Fra : Rune Thougaard Krist~


Dato : 17-10-03 20:56

http://www.rtk-design.dk/rod/asp/malingliste/form.asp

jeg skal have lavet en betingelse så hvis der bliver makeret i "tilmeld" så
bliver man hanvist til tilmeld.asp
og det sammen med frameld

men jeg ved ikke hvordan jeg skal lave en betingelses sætning... (har aldig
lavet ASP før)

håber der en der vil hjælpe mig igang med dette...

mvh. Rune Thougaard
--



 
 
Brian B. Christensen (17-10-2003)
Kommentar
Fra : Brian B. Christensen


Dato : 17-10-03 21:07

>men jeg ved ikke hvordan jeg skal lave en betingelses sætning... (har aldig
>lavet ASP før)

Prøv at se her:

http://www.html.dk/tutorials/asp/lektion6.asp


--
Mvh. Brain, øhh Brian.

Hent mit ASP fotoalbum her: http://activedeveloper.dk/download/default.asp?mode=showdownload&id=598
http://www.patricia-brinch.dk og http://www.Zelinski.dk

Rune Thougaard Krist~ (17-10-2003)
Kommentar
Fra : Rune Thougaard Krist~


Dato : 17-10-03 21:24

Mit gæt ser sådan her ud, på html.dk kunne jeg ikke finde, hvad jeg skulle
skrive hvis nu en af dem var checked.

' hvis tilmeld er checked gå til tilmeld.asp
If Request.Form("tilmeld") = checked Then
Response.Redirect "tilmeld.asp"
Else

' hvis frameld er checked gå til frameld.asp
Request.Form("frameld") = checked Then
Response.Redirect "frameld.asp"
End If

http://www.rtk-design.dk/rod/asp/malingliste/send.asp

mvh. Rune Thougaard
--



Torben Brandt (17-10-2003)
Kommentar
Fra : Torben Brandt


Dato : 17-10-03 21:55

Rune Thougaard Kristensen skrev:
> Mit gæt ser sådan her ud, på html.dk kunne jeg ikke finde, hvad jeg skulle
> skrive hvis nu en af dem var checked.
>
> ' hvis tilmeld er checked gå til tilmeld.asp
> If Request.Form("tilmeld") = checked Then
> Response.Redirect "tilmeld.asp"
> Else
>
> ' hvis frameld er checked gå til frameld.asp
> Request.Form("frameld") = checked Then
> Response.Redirect "frameld.asp"
> End If
>
> http://www.rtk-design.dk/rod/asp/malingliste/send.asp

Dine radio-buttons har name-attribut "page" i html'en, så det er "page"
du skal lede efter i Request.Form. Det er altid name-attributten man
skal lede efter.

Dine radio-buttons kan have value "frameld" eller "tilmeld", så
Request.Form("page") kan enten være "frameld" eller "tilmeld":

If Request.Form("page") = "tilmeld" Then
Response.Redirect "tilmeld.asp"
Else
Response.Redirect "frameld.asp"
End If

Generelt: Hvis du ikke ved hvad du skal skal sammenligne
Request.Form("page") med, så kan du udskrive den for at de hvad den er i
specielle tilfælde:
Response.Write Request.Form("page")

mvh Torben


Rune Thougaard Krist~ (17-10-2003)
Kommentar
Fra : Rune Thougaard Krist~


Dato : 17-10-03 22:02

forstod ikke lige 100% det hele men nu har jeg rettet det til følegnde:

If Request.Form("page") = "tilmeld" Then
Response.Redirect "tilmeld.asp"
Else
Request.Form("page") = "frameld" Then
Response.Redirect "frameld.asp"
End If

men den har nu følgende fejl:
http://www.rtk-design.dk/rod/asp/malingliste/send.asp

mvh. Rune Thougaard
--



Torben Brandt (17-10-2003)
Kommentar
Fra : Torben Brandt


Dato : 17-10-03 22:32

Rune Thougaard Kristensen skrev:
> forstod ikke lige 100% det hele men nu har jeg rettet det til følegnde:

Du må gerne citere det du ikke forstår, så jeg/vi kan uddybe. Jeg prøver
at omformulere:

På din side har du en form, hvor der står noget i retning af:
<form action="....." method="post">
<input type="radio" name="page" value="tilmeld">
<input type="radio" name="page" value="frameld">
</form>

Når du på næste side skal finde ud af hvilken af disse der blev valgt,
så skal du lede efter variablen "page" fordi dine radio-buttons har
name="page".
Det er altid det ud for name man skal lede efter.

Da du har method="post" så skal du lede i Request.Form.

Altså er Request.Form("page") enten lig med "tilmeld" eller "frameld".

> If Request.Form("page") = "tilmeld" Then
> Response.Redirect "tilmeld.asp"
> Else
> Request.Form("page") = "frameld" Then
> Response.Redirect "frameld.asp"
> End If
>
> men den har nu følgende fejl:
> http://www.rtk-design.dk/rod/asp/malingliste/send.asp

Det er linien:
Request.Form("page") = "frameld" Then
der er gal.
Man kan ikke have et Then uden et If.

Du kan lave det på to måder. Enten:
If Request.Form("page") = "tilmeld" Then
Response.Redirect "tilmeld.asp"
ElseIf Request.Form("page") = "frameld" Then
Response.Redirect "frameld.asp"
End If
eller
If Request.Form("page") = "tilmeld" Then
Response.Redirect "tilmeld.asp"
Else
If Request.Form("page") = "frameld" Then
Response.Redirect "frameld.asp"
End If
End If

Håber du kan se på min indrykning at den første ElseIf fortsætter
If-sætningen og der er kun brug for ét End If for at afslutte If-sætningen.
I det andet tilfælde laver jeg en helt ny If-sætning inden i Else-delen.
Der for har jeg to End If'er.

Resultatet for de to muligheder er ens.

Man kan nærmest sige at du har lavet en mellemting af de to muligheder.
Der mangler et If, men afhængigt af hvordan du sætter det, så skal du
også have et ekstra End If med.


Prøv at sætte dig ind i hvad der sker i hver enkelt linie. Det er
nærmest umuligt at komme uden om If-sætninger i en ASP-side, så det er
rart at have styr på :)

mvh Torben


Rune Thougaard Krist~ (17-10-2003)
Kommentar
Fra : Rune Thougaard Krist~


Dato : 17-10-03 22:51

wee, 1000 tak for hjælpen... nu mangler jeg kun en ting:

Hvordan fjerne sletter jeg en e-mail fra min db

jeg kan se på html.dk at man skal bruge

' SQL sletter record
strSQL = "Delete from emailadresser where Id = 24"
Conn.Execute(strSQL)

men kan man ikke ændre Id = 24 så den kan slette en e-mail adresse isteden
for...?

mit forslag til dette er:

' SQL sletter record
strSQL = "Delete from emailadresser where Id = Request.Form("email") "
Conn.Execute(strSQL)

Hvordan skal det sættes ind i denne betingelse (If else) så hvis der bliver
valgt, "tilmeld" bliver den gemt og hvis der bliver valgt "frameld" så
bliver den slettet.

mvh. Rune Thougaard
--



Torben Brandt (17-10-2003)
Kommentar
Fra : Torben Brandt


Dato : 17-10-03 23:13

Rune Thougaard Kristensen skrev:
> Hvordan fjerne sletter jeg en e-mail fra min db

Vi har nu fundet ud af at viderestille til forskellige sider alt efter
om der skal tilmeldes eller frameldes, så tilmeldingen skal foregå i
tilmeld.asp og omvendt.

Jeg tror at tilmeldingsdelen med insert into ... er blevet klaret i
tidligere indlæg (emne: mailingliste). Korrekt?

> jeg kan se på html.dk at man skal bruge
>
> ' SQL sletter record
> strSQL = "Delete from emailadresser where Id = 24"
> Conn.Execute(strSQL)
>
> men kan man ikke ændre Id = 24 så den kan slette en e-mail adresse isteden
> for...?
>
> mit forslag til dette er:
>
> ' SQL sletter record
> strSQL = "Delete from emailadresser where Id = Request.Form("email") "
> Conn.Execute(strSQL)

Id referer til søjlens navn i databasen. Din søjle hedder email, så der
skal stå email i stedet for Id.

Du har også rod med hvor sin streng starter og slutter. Det rigtige er:
strSQL = "Delete from emailadresser where email = '" &
Request.Form("email") & "'"
som skal stå på én linie!
Der er gjort 2 ting:
1) Jeg har indsat to plinger (') som skal stå rundt om tekstværdier (men
ikke omkring tal, osv)
2) Jeg har flyttet på dine gåseøjne. Overvej hvad forskellen er...
Overvej også hvorfor der er forskel på:
var = "abc"
Response.Write "var indholder: " & var
Response.Write "<hr>"
Response.Write "var indeholder: var"
Response.Write "<hr>"
Response.Write "var indeholder: & var"

> Hvordan skal det sættes ind i denne betingelse (If else) så hvis der bliver
> valgt, "tilmeld" bliver den gemt og hvis der bliver valgt "frameld" så
> bliver den slettet.

Som nævnt herover, så skal det laves i hhv tilmeld.asp og frameld.asp.

/Torben


Rune Thougaard Krist~ (17-10-2003)
Kommentar
Fra : Rune Thougaard Krist~


Dato : 17-10-03 23:27

hvis jeg forstår dig ret hvilket jeg ikke nok ikke gør skal min sætning se
således ud..

' SQL sletter record
strSQL = "Delete from emailadresser where email ='" & Request.Form("email")
&"'"

Response.Write "var indholder: " & var
Response.Write "<hr>"
Response.Write "var indeholder: var"
Response.Write "<hr>"
Response.Write "var indeholder: & var"

Conn.Execute(strSQL)

mvh. Rune Thougaard
--



Torben Brandt (18-10-2003)
Kommentar
Fra : Torben Brandt


Dato : 18-10-03 00:45

Rune Thougaard Kristensen skrev:
> hvis jeg forstår dig ret hvilket jeg ikke nok ikke gør skal min sætning se
> således ud..

<snip : kode>

Nja, det var ikke helt det jeg mente, men Jørn har vist fået dig på
rette vej, så lad os bare følge den del af tråden :)

/Torben


Jørn Andersen (17-10-2003)
Kommentar
Fra : Jørn Andersen


Dato : 17-10-03 23:29

On Fri, 17 Oct 2003 23:51:21 +0200, "Rune Thougaard Kristensen"
<rune@rtk-design.dk> wrote:

> ' SQL sletter record
> strSQL = "Delete from emailadresser where Id = Request.Form("email") "

strSQL = "Delete from emailadresser where Id = " &
Request.Form("email")

Du danner en SQL-streng ved at bygge strengen op af flere elementer.
Elementer samles med &-tegnet.
Tekststrenge skal have anførselstegn omkring sig.

Men en tekststreng kan også repræsenteres af en variabel eller en
funktion - fx: Request.Form("email")
Variable og funktioner skal *ikke* have anførselstegn om sig.

Så ovenfor har vi en streng-variabel (strSql), der sammensættes af:
en streng (første del med "..." om)
+
&-tegnet (til at samle med)
+
en variabel (Request.Form("email"))

For at komplicere tingene yderligere, så skal SQL-værdier, som
refererer til tekstfelter i databasen også have anførselstegn omkring
sig. For ikke at VB Script skal tro, at tekststrengen bliver
afsluttet, bruges enkelt-anførselstegn (' - også kaldet plinger)

Så hvis Id-feltet er et tekstfelt, bliver det til:
strSQL = "Delete from emailadresser where Id = '" &
Request.Form("email") & "'"


>Hvordan skal det sættes ind i denne betingelse (If else) så hvis der bliver
>valgt, "tilmeld" bliver den gemt og hvis der bliver valgt "frameld" så
>bliver den slettet.

Den får du selv lov til at lege med
Hint:
Hvis "frameld"
strSql = "DELETE blabla"
Ellers
strSQl = "INSERT INTO blabla"


Good luck!

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

Rune Thougaard Krist~ (17-10-2003)
Kommentar
Fra : Rune Thougaard Krist~


Dato : 17-10-03 23:44

"Give it a try" <--- det er mig :D

If Request.Form("page") = "tilmeld" Then
' email adressen fra input bliver gemt i db
Response.Redirect "tilmeld.asp"
strSQL = "Insert into emailadresser ("
strSQL = strSQL & "email) "
strSQL = strSQL & "values("
strSQL = strSQL & "'" & Request.Form("email") & "')"

Else

If Request.Form("page") = "frameld" Then

' linker videre til frameld.asp
Response.Redirect "frameld.asp"

' SQL sletter record
strSQL = "Delete from emailadresser where email = '" &
Request.Form("email") & "'"

End If
End If

nu skulle den meget gerne, gemme e-mailen hvis der vælges tilmeld og slette
hvis der vælges frameld.

mvh. Rune Thougaard
--



Jørn Andersen (18-10-2003)
Kommentar
Fra : Jørn Andersen


Dato : 18-10-03 00:04

On Sat, 18 Oct 2003 00:43:33 +0200, "Rune Thougaard Kristensen"
<rune@rtk-design.dk> wrote:

>"Give it a try" <--- det er mig :D

That's the spirit

>If Request.Form("page") = "tilmeld" Then
> ' email adressen fra input bliver gemt i db
> Response.Redirect "tilmeld.asp"
> strSQL = "Insert into emailadresser ("
> strSQL = strSQL & "email) "
> strSQL = strSQL & "values("
> strSQL = strSQL & "'" & Request.Form("email") & "')"
>

- men det her holder jo ikke en meter.
Når du redirect'er stopper kode-afviklingen på den side, du
redirect'er *fra*. (altså: din strSql bliver ikke dannet.)

Der er flere mulige måder at klare den på.
1. Du kan overføre værdierne til den nye side (fx med Session-variable
el. lign.)
2) Du kan bruge Server.Execute eller Include

Men det enkleste er nok at have det hele på én side:

If Request.Form("page") = "tilmeld" Then
strSql = "INSERT INTO bla bla ..."
objConn.Execute(strSql)
ElseIf Request.Form("page") = "frameld" Then
strSql = "DELETE FROM bla bla ..."
objConn.Execute(strSql)
End If

(Fyld selv ud med de dele af koden der mangler.)

>nu skulle den meget gerne, gemme e-mailen hvis der vælges tilmeld og slette
>hvis der vælges frameld.


Good luck!

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

Rune Thougaard Krist~ (18-10-2003)
Kommentar
Fra : Rune Thougaard Krist~


Dato : 18-10-03 00:26

> (Fyld selv ud med de dele af koden der mangler.)

Den ser nu således ud:

If Request.Form("page") = "tilmeld" Then
StrSQL = "INSERT INTO emailadresser where email = '" &
Request.Form("email") & "'"
ObjConn.Execute(StrSQL)
Else
If Request.Form("page") = "frameld" Then
StrSQL = "DELETE FROM emailadresser where email = '" &
Request.Form("email") & "'"
ObjConn.Execute(StrSQL)
End If

men der er fejl i linie 41 som ser sådan her ud:

Set Conn = Nothing

http://www.rtk-design.dk/rod/asp/malingliste/form.asp


mvh. Rune Thougaard
--



Torben Brandt (18-10-2003)
Kommentar
Fra : Torben Brandt


Dato : 18-10-03 00:44

Rune Thougaard Kristensen skrev:

> Den ser nu således ud:
>
> If Request.Form("page") = "tilmeld" Then
> StrSQL = "INSERT INTO emailadresser where email = '" &
> Request.Form("email") & "'"
> ObjConn.Execute(StrSQL)
> Else
> If Request.Form("page") = "frameld" Then
> StrSQL = "DELETE FROM emailadresser where email = '" &
> Request.Form("email") & "'"
> ObjConn.Execute(StrSQL)
> End If
>
> men der er fejl i linie 41 som ser sådan her ud:
>
> Set Conn = Nothing

Når du har to linier, der starter med If ... så skal der også være to
End If. Tilføj End If efter det første End If. Se evt mit tidligere
eksempel i denne tråd.
Det er sådan set ikke linie 41, der er noget galt med.

/Torben


Rune Thougaard Krist~ (18-10-2003)
Kommentar
Fra : Rune Thougaard Krist~


Dato : 18-10-03 01:04

http://www.rtk-design.dk/rod/asp/malingliste/send.asp

nu er den bare gal med linie 28 som så sålades ud:

ObjConn.Execute(StrSQL)

PS: har du ikke MSN så kunne vi holde kontakt igennem der...?
rune@rtk-design.dk


mvh. Rune Thougaard
--



Jørn Andersen (18-10-2003)
Kommentar
Fra : Jørn Andersen


Dato : 18-10-03 01:32

On Sat, 18 Oct 2003 02:04:09 +0200, "Rune Thougaard Kristensen"
<rune@rtk-design.dk> wrote:

>http://www.rtk-design.dk/rod/asp/malingliste/send.asp
>
>nu er den bare gal med linie 28 som så sålades ud:
>
> ObjConn.Execute(StrSQL)

Hvad er fejlmeldingen?

Hvis det er den der hænger på siden nu:
Field 'emailadresser.email' cannot be a zero-length string.
- så får du sikkert ikke nogen email-adresse ud af din form. Og der
kommer fejl, fordi databasen er sat til ikke at acceptere nul-lægde
strenge.

Så: Hvad er den resulterende Sql-streng?
Fra:
<url: http://www.asp-faq.dk/article/?id=41>:

Response.Write "SQL: " & strSql
Response.End

>PS: har du ikke MSN så kunne vi holde kontakt igennem der...?
>rune@rtk-design.dk

Det ville da være synd for os andre

Good luck!

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

Jørn Andersen (18-10-2003)
Kommentar
Fra : Jørn Andersen


Dato : 18-10-03 01:25

On Sat, 18 Oct 2003 01:25:57 +0200, "Rune Thougaard Kristensen"
<rune@rtk-design.dk> wrote:

>Else
>If Request.Form("page") = "frameld" Then

I stedet for de to foregående:
ElseIf Request.Form("page") = "frameld" Then

Det er vist mest logisk, at det er enten-eller og ikke to separate
if'er.

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

Rune Thougaard Krist~ (18-10-2003)
Kommentar
Fra : Rune Thougaard Krist~


Dato : 18-10-03 01:39

vil du ikke nok rette denne her til så den virker og man bliver sendt til
hen holds vis til/framels.asp efter hvad man hun vælger...

If Request.Form("page") = "tilmeld" Then
StrSQL = "INSERT INTO emailadresser where email = '" &
Request.Form("email") & "'"
ObjConn.Execute(StrSQL)
ElseIf Request.Form("page") = "frameld" Then
StrSQL = "DELETE FROM emailadresser where email = '" &
Request.Form("email") & "'"
ObjConn.Execute(StrSQL)
End If
End If

kan ikke overeskue mere for i dag vil i seng... og tak for hjælpen indtil
nu.!

mvh. Rune Thougaard
--



Jørn Andersen (18-10-2003)
Kommentar
Fra : Jørn Andersen


Dato : 18-10-03 01:57

On Sat, 18 Oct 2003 02:39:01 +0200, "Rune Thougaard Kristensen"
<rune@rtk-design.dk> wrote:

>vil du ikke nok rette denne her til så den virker og man bliver sendt til
>hen holds vis til/framels.asp efter hvad man hun vælger...

Jeg vil egentlig hellere lade dig genvinde overblikket i morgen

Jeg er ikke helt med på, hvad tilmeld.asp og frameld.asp skal gøre?
Er det ikke nemmere at have det hele på samme side?

Et par små kommentarer at arbejde videre med:

>If Request.Form("page") = "tilmeld" Then
> StrSQL = "INSERT INTO emailadresser where email = '" &
>Request.Form("email") & "'"

INSERT INTO-syntaksen er forkert - se html.dk

> ObjConn.Execute(StrSQL)
>ElseIf Request.Form("page") = "frameld" Then
> StrSQL = "DELETE FROM emailadresser where email = '" &
>Request.Form("email") & "'"

Her skulle Sql'en den være rigtig nok.

> ObjConn.Execute(StrSQL)
>End If
>End If

Der skal ikke være to End If'er, når du bruger ElseIf.

>kan ikke overeskue mere for i dag vil i seng... og tak for hjælpen indtil
>nu.!

Sov godt - det er nogle gange en fordel at komme væk fra skærmen og se
på det lidt senere med friske øjne.

Good luck!

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

Rune Thougaard Krist~ (18-10-2003)
Kommentar
Fra : Rune Thougaard Krist~


Dato : 18-10-03 09:47

wooohooo, nu virker den perfekt efter lidt søvn kan man bare lidt hele :D

tak for hjælpe til Torben og Jøren i de sene nattetimer...

i kan se den her: http://www.rtk-design.dk/rod/asp/malingliste/form.asp

nu skal den bare lige rettes til, laves pæn o.s.v.

mvh. Rune Thougaard
--



Rune Thougaard Krist~ (18-10-2003)
Kommentar
Fra : Rune Thougaard Krist~


Dato : 18-10-03 10:19

nyt spørgsmål ang. betingelser...

Er det muligt at lave en betingelse til denne side:
http://www.rtk-design.dk/rod/asp/malingliste/form.asp som tjekker om der er
.. og @ i e-mail adressen...

Jeg vile helst undgå at lave det i JS da jeg ikke bare MS VM installeret og
der for virker JS ikke på min PC

mvh. Rune Thougaard
--



Peter Lykkegaard (18-10-2003)
Kommentar
Fra : Peter Lykkegaard


Dato : 18-10-03 11:06

Rune Thougaard Kristensen wrote:
> nyt spørgsmål ang. betingelser...
>
> Er det muligt at lave en betingelse til denne side:
> http://www.rtk-design.dk/rod/asp/malingliste/form.asp som tjekker om
> der er . og @ i e-mail adressen...
>
Det må vist være en sag for reular expressions?
http://www.4guysfromrolla.com/webtech/090199-1.shtml

Ellers en simpel InStr vil også kunne gøre det

If InStr(strEmail, "@") and InStr(strEmail, ".") Then
Response.Write strEmail & " might be a valid email address"
Else
Response.Write strEmail & " is not valid email address"
End If

Man kan gå et skridt videre og bruge InStrRev til at hente "landekoden"

mvh/Peter Lykkegaard



Søg
Reklame
Statistik
Spørgsmål : 177552
Tips : 31968
Nyheder : 719565
Indlæg : 6408847
Brugere : 218887

Månedens bedste
Årets bedste
Sidste års bedste