Avatar billede magnus_b Nybegynder
14. maj 2003 - 19:34 Der er 17 kommentarer og
1 løsning

JMail og database

Jeg vil gerne sende en JMail med de informationer, der bliver indtastet i en formular, på den foregående side. Jeg kan bare ikke finde ud af hvordan jeg laver en lykke, der kan sætte x antal poster ind.


'BEHANDLER DATA FRA FORMULAREN
ASQL = "SELECT efternavn, adresse, postnr FROM femina WHERE id = " & CInt(Request.Form("holdID")) & " "
SET dbrecord = dbconnect.execute(ASQL)

adresse =  "C/O " & dbrecord("efternavn") & ", " & dbrecord("adresse")
postnr = dbrecord("postnr")

antal=CInt(Request.Form("antal"))

Do Until i = (antal)
i = i+1
sSql = "INSERT INTO femina (fornavn, efternavn, adresse, postnr, alder, lobetid, Tshirt, holdnavn, holdid) values('" & Request.Form(Trim("requiredfornavn" &i)) & "','" & Request.Form(Trim("requiredefternavn" &i)) & "','" & adresse & "','" & postnr & "','" & Request.Form("requiredalder" &i) & "','" & Request.Form("requiredlobetid" &i) & "','" & Request.Form("requiredTshirt" &i) & "','" & Request.Form(Trim("requiredholdnavn")) & "','" & Request.Form("holdID") & "')"

' SQL sætning eksekveres
dbconnect.execute(sSql)
Loop



'HENTER DATA OM KONTAKTPERSONEN
Dim dataSQL, holdSQL
dataSQL = "SELECT * FROM femina WHERE holdID = " & Request.Form("holdID") & " "
SET dbrecord = dbconnect.execute(dataSQL)



'JMAILEN
Name        = "KIF Online"
SenderEmail = "feminalobet@kif-atletik.dk"
Subject    = "Tilmelding til Femina kvindeløbet 2003"
Recipient  = dbrecord("email")
Body        = "Hej " & dbrecord("fornavn") & " " & dbrecord("efternavn") & "," & vbCrLf & vbCrLf & "Tak for din tilmelding til Femina Kvindeløbet 2003." & vbCrLf & "Du har tilmeldt dit hold med følgende data:" & vbCrLf  & vbCrLf & "Holdnavn: " & dbrecord("holdnavn") & " og holdnummer: " & Request.Form("holdID") & vbCrLf & "Kontaktperson" & vbCrLf & dbrecord("fornavn") & " " & dbrecord("efternavn") & vbCrLf & dbrecord("adresse") & vbCrLf & dbrecord("postnr") & " " & vbCrLf & "Telefon: " & dbrecord("telefon") & vbCrLf & "Aldersgruppe: " & dbrecord("alder") & vbCrLf & "Forventet løbetid: " & dbrecord("lobetid") & vbCrLf & "T-shirts: " & dbrecord("Tshirt") & vbCrLf & vbCrLf & "De andre på holdet" & vbCrLf &

'HER SKAL RESTEN AF HOLDET STÅ!
& vbCrLf & vbCrLf & "Har du spørgsmål, kan du sikkert finde svar på dem her http://www.kif-atletik.dk/feminalobet/femina_faq.asp"  & vbCrLf & vbCrLf & "Venlig hilsen"  & vbCrLf & "Københavns Idræts Forening"


Set msg = Server.CreateOBject( "JMail.Message" )
msg.Logging = True
msg.silent = True

msg.From = senderEmail
msg.FromName = name
msg.AddRecipient recipient

msg.Subject = subject

msg.body = body

If not msg.Send("mail.kif-atletik.dk" ) then
    Response.write "<pre>" & msg.log & "</pre>"
Else
    Response.write "<BR>"
End if
Avatar billede eagleeye Praktikant
14. maj 2003 - 19:42 #1
Er holdID tal skal der ikke ping ' omkring i SQL som indsætter.:

sSql = "INSERT INTO femina (fornavn, efternavn, adresse, postnr, alder, lobetid, Tshirt, holdnavn, holdid) values('" & Request.Form(Trim("requiredfornavn" &i)) & "','" & Request.Form(Trim("requiredefternavn" &i)) & "','" & adresse & "','" & postnr & "','" & Request.Form("requiredalder" &i) & "','" & Request.Form("requiredlobetid" &i) & "','" & Request.Form("requiredTshirt" &i) & "','" & Request.Form(Trim("requiredholdnavn")) & "'," & Request.Form("holdID") & ")"
Avatar billede eagleeye Praktikant
14. maj 2003 - 19:43 #2
Eller så prøv at udskrive SQL i stedet for at udføre den for at se om det ser rigtigt ud:

Do Until i = (antal)
i = i+1
sSql = "INSERT INTO femina (fornavn, efternavn, adresse, postnr, alder, lobetid, Tshirt, holdnavn, holdid) values('" & Request.Form(Trim("requiredfornavn" &i)) & "','" & Request.Form(Trim("requiredefternavn" &i)) & "','" & adresse & "','" & postnr & "','" & Request.Form("requiredalder" &i) & "','" & Request.Form("requiredlobetid" &i) & "','" & Request.Form("requiredTshirt" &i) & "','" & Request.Form(Trim("requiredholdnavn")) & "'," & Request.Form("holdID") & ")"

Response.write sSql & "<br>"
' SQL sætning eksekveres
'dbconnect.execute(sSql)
Loop
Avatar billede magnus_b Nybegynder
14. maj 2003 - 19:54 #3
SQLèn er ikke problemet. Der er når jeg skal sende oplysningerne med JMail, problemet opstår.
Avatar billede magnus_b Nybegynder
14. maj 2003 - 19:55 #4
Helt præcist er den den line der starter med Body = "Hej " & dbreco ....
der giver mig hovedbrud.
Avatar billede eagleeye Praktikant
14. maj 2003 - 20:07 #5
Du kan dele den op i flere linjer så bliver det mere overskueligt.:

Body        = "Hej " & dbrecord("fornavn") & " " & dbrecord("efternavn") & "," & vbCrLf & vbCrLf
Body = Body & "Tak for din tilmelding til Femina Kvindeløbet 2003." & vbCrLf & "Du har tilmeldt dit hold med følgende data:" & vbCrLf  & vbCrLf
Body = Body & "Holdnavn: " & dbrecord("holdnavn") & " og holdnummer: " & Request.Form("holdID") & vbCrLf
Body = Body & "Kontaktperson" & vbCrLf & dbrecord("fornavn") & " " & dbrecord("efternavn") & vbCrLf & dbrecord("adresse") & vbCrLf & dbrecord("postnr") & " " & vbCrLf
Body = Body & "Telefon: " & dbrecord("telefon") & vbCrLf & "Aldersgruppe: " & dbrecord("alder") & vbCrLf
Body = Body & "Forventet løbetid: " & dbrecord("lobetid") & vbCrLf & "T-shirts: " & dbrecord("Tshirt") & vbCrLf & vbCrLf
Body = Body & "De andre på holdet" & vbCrLf & vbCrLf & vbCrLf
Body = Body & "Har du spørgsmål, kan du sikkert finde svar på dem her http://www.kif-atletik.dk/feminalobet/femina_faq.asp" & vbCrLf & vbCrLf
Body = Body & "Venlig hilsen" & vbCrLf & "Københavns Idræts Forening"


Hvad er det så mere du vil havde med?
Avatar billede magnus_b Nybegynder
14. maj 2003 - 20:12 #6
De andre på holdet mangler og det er det som jeg ikke kan finde ud af.
Body = Body & "De andre på holdet" - her skulle gerne stå deres data, dem som skrives til databasen. Jeg har brug for en form for lykke, men jeg kan ikke få det til at virke.
Avatar billede eagleeye Praktikant
14. maj 2003 - 20:23 #7
Body        = "Hej " & dbrecord("fornavn") & " " & dbrecord("efternavn") & "," & vbCrLf & vbCrLf
Body = Body & "Tak for din tilmelding til Femina Kvindeløbet 2003." & vbCrLf & "Du har tilmeldt dit hold med følgende data:" & vbCrLf  & vbCrLf
Body = Body & "Holdnavn: " & dbrecord("holdnavn") & " og holdnummer: " & Request.Form("holdID") & vbCrLf
Body = Body & "Kontaktperson" & vbCrLf & dbrecord("fornavn") & " " & dbrecord("efternavn") & vbCrLf & dbrecord("adresse") & vbCrLf & dbrecord("postnr") & " " & vbCrLf
Body = Body & "Telefon: " & dbrecord("telefon") & vbCrLf & "Aldersgruppe: " & dbrecord("alder") & vbCrLf
Body = Body & "Forventet løbetid: " & dbrecord("lobetid") & vbCrLf & "T-shirts: " & dbrecord("Tshirt") & vbCrLf & vbCrLf
Body = Body & "De andre på holdet:" & vbCrLf & vbCrLf

do while not dbrecord.EOF
  Body = Body & "Fornavn " & vbCrLf & dbrecord("fornavn") & " " & dbrecord("efternavn") & vbCrLf & dbrecord("adresse") & vbCrLf & dbrecord("postnr") & " " & vbCrLf
  Body = Body & "Telefon: " & dbrecord("telefon") & vbCrLf & "Aldersgruppe: " & dbrecord("alder") & vbCrLf
  Body = Body & "Forventet løbetid: " & dbrecord("lobetid") & vbCrLf & "T-shirts: " & dbrecord("Tshirt") & vbCrLf & vbCrLf
 
  dbrecord.MoveNext
loop

Body = Body & "Har du spørgsmål, kan du sikkert finde svar på dem her http://www.kif-atletik.dk/feminalobet/femina_faq.asp" & vbCrLf & vbCrLf
Body = Body & "Venlig hilsen" & vbCrLf & "Københavns Idræts Forening"
Avatar billede magnus_b Nybegynder
14. maj 2003 - 20:39 #8
Ja, nu er den ved at være der, men den køre lykken to gange!
Avatar billede eagleeye Praktikant
14. maj 2003 - 20:42 #9
Den køre to gange??
Så alle navne står der to gange?? Eller der det kontakt personen som står der to gange? For når jeg lige kigger igen så vil kontakt personen listes to gange.

Det kan løses ved at sætte:

dbrecord.Movenext

Ind lige før denne linje:

do while not dbrecord.EOF
Avatar billede magnus_b Nybegynder
14. maj 2003 - 20:43 #10
Hvis jeg nu vil oversætte alderværdien
1 = 0-15 år
2 = 16-20 år
3 = 21-30 år
4 = 31-40 år

kan det lige ledes gøres på en nem måde?
Avatar billede magnus_b Nybegynder
14. maj 2003 - 20:45 #11
Det er hele holdet der står to gange.
Avatar billede eagleeye Praktikant
14. maj 2003 - 20:47 #12
Ja du kan lave det med en select case.:

Så denne linje:

Body = Body & "Telefon: " & dbrecord("telefon") & vbCrLf & "Aldersgruppe: " & dbrecord("alder") & vbCrLf


Bliver til:

select case Cstr(dbrecord("alder"))
Case "1"  alderStr = "0-15 år"
Case "2"  alderStr = "16-20 år"
Case "3"  alderStr = "21-30 år"
Case "4"  alderStr = "31-40 år"
end select

Body = Body & "Telefon: " & dbrecord("telefon") & vbCrLf & "Aldersgruppe: " & alderStr & vbCrLf
Avatar billede eagleeye Praktikant
14. maj 2003 - 20:49 #13
Det forstår jeg ikke den skriver det to gange, prøv at tjekke i din database at holdet ikke er oprettet to gange, umiddelbart er der ikke noget som skulle gøre loopet skulel køre to gange.
Avatar billede magnus_b Nybegynder
14. maj 2003 - 21:00 #14
Aha, det var min egen dovenhed der drillet. Jeg gik bare frem og tilbage med samme tilmelding ;-)

Case kan jeg dog ikke få til at oversætte.

Skal "Aldersgruppe: " & dbrecord("alder") udskiftets ned casen?
Avatar billede eagleeye Praktikant
14. maj 2003 - 21:06 #15
Nej det skl ind lige inden linjen med "Aldersgruppe: " & dbrecord("alder") i.

Det skal ændres så det ikke er dbrecord("alder") som skrives i mailen men en variable som indeholder noget tekst.

"Aldersgruppe: " & alderStr
Avatar billede eagleeye Praktikant
14. maj 2003 - 21:17 #16
Du kan prøve med dette:



Body        = "Hej " & dbrecord("fornavn") & " " & dbrecord("efternavn") & "," & vbCrLf & vbCrLf
Body = Body & "Tak for din tilmelding til Femina Kvindeløbet 2003." & vbCrLf & "Du har tilmeldt dit hold med følgende data:" & vbCrLf  & vbCrLf
Body = Body & "Holdnavn: " & dbrecord("holdnavn") & " og holdnummer: " & Request.Form("holdID") & vbCrLf
Body = Body & "Kontaktperson" & vbCrLf & dbrecord("fornavn") & " " & dbrecord("efternavn") & vbCrLf & dbrecord("adresse") & vbCrLf & dbrecord("postnr") & " " & vbCrLf
Body = Body & "Telefon: " & dbrecord("telefon") & vbCrLf

select case Cstr(dbrecord("alder"))
Case "1"  alderStr = "0-15 år"
Case "2"  alderStr = "16-20 år"
Case "3"  alderStr = "21-30 år"
Case "4"  alderStr = "31-40 år"
end select
Body = Body & "Aldersgruppe: " & alderStr & vbCrLf
Body = Body & "Forventet løbetid: " & dbrecord("lobetid") & vbCrLf & "T-shirts: " & dbrecord("Tshirt") & vbCrLf & vbCrLf
Body = Body & "De andre på holdet:" & vbCrLf & vbCrLf

dbrecord.MoveNext
do while not dbrecord.EOF
  Body = Body & "Fornavn " & vbCrLf & dbrecord("fornavn") & " " & dbrecord("efternavn") & vbCrLf & dbrecord("adresse") & vbCrLf & dbrecord("postnr") & " " & vbCrLf
  Body = Body & "Telefon: " & dbrecord("telefon") & vbCrLf

select case Cstr(dbrecord("alder"))
Case "1"  alderStr = "0-15 år"
Case "2"  alderStr = "16-20 år"
Case "3"  alderStr = "21-30 år"
Case "4"  alderStr = "31-40 år"
end select
  Body = Body & "Aldersgruppe: " & alderStr & vbCrLf
  Body = Body & "Forventet løbetid: " & dbrecord("lobetid") & vbCrLf & "T-shirts: " & dbrecord("Tshirt") & vbCrLf & vbCrLf
 
  dbrecord.MoveNext
loop

Body = Body & "Har du spørgsmål, kan du sikkert finde svar på dem her http://www.kif-atletik.dk/feminalobet/femina_faq.asp" & vbCrLf & vbCrLf
Body = Body & "Venlig hilsen" & vbCrLf & "Københavns Idræts Forening"
Avatar billede magnus_b Nybegynder
14. maj 2003 - 21:22 #17
Så spiller det bare og du mangler at give et svar og ikke en kommentar, så du kan få dine velfortjente point :)
Avatar billede eagleeye Praktikant
14. maj 2003 - 21:23 #18
;) ok her er et svar.
Avatar billede Ny bruger Nybegynder

Din løsning...

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.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester