webForumDet fria alternativet

Formulär

ASP

13 svar · 327 visningar · startad av sahle

Medlem sedan jan. 200336 inlägg
Frågan#1

Hej!

Är det någon som vet hur man skickar ett formulär till en databas
sammtidigt som det skickas till den personen som fyllde i formuläret.

Jag har ett formulär som skickas till en sida som heter spara.asp,
därifrån vill jag att det ska skickas till databasen sammtidigt som det ska skickas till den som fyllde i formuläret och en kopia till mig via email .

Jag får det att fungera till databasen när jag tar bort "cdonts" koden, och "cdonts" fungerar när jag har det på en egen sida.

Saknas det något i koden?

<% Set Conn=Server.CreateObject("ADODB.Connection")
Conn.Open "Driver={Microsoft Access Driver (*.mdb)}; DBQ=" & Server.MapPath("dbanm.mdb") & ";pwd=;"

If Request.Form("tavling") & Request.Form("klass") _
& Request.Form("licens") & Request.Form("namn") & Request.Form("gata") & Request.Form("postadress") _
  & Request.Form("personnr") & Request.Form("klubb") & Request.Form("email") & Request.Form("team") _
  & Request.Form("frekvens1") & Request.Form("frekvens2") & Request.Form("frekvens3") & Request.Form("mekaniker") <> "" Then
Dim tavling, klass, licens, namn, gata, postadress, personnr, klubb, email, team, frekvens1, frekvens2, frekvens3, mekaniker

tavling=Request.Form("tavling")
klass=Request.Form("klass")
licens=Request.Form("licens")
namn=Request.Form("namn")
gata=Request.Form("gata")
postadress=Request.Form("postadress")
personnr=Request.Form("personnr")
klubb=Request.Form("klubb")
email=Request.Form("email")
team=Request.Form("team")
frekvens1=Request.Form("frekvens1")
frekvens2=Request.Form("frekvens2")
frekvens3=Request.Form("frekvens3")
mekaniker=Request.Form("mekaniker")

SQL="Insert Into anmalningar_rb (tavling,klass,licens,namn,gata,postadress,personnr,klubb,email,team,frekvens1,frekvens2,frekvens3,mekaniker) Values('"& tavling &"','"& klass &"','"& licens &"','"& namn &"','"& gata &"','"& postadress &"','"& personnr &"','"& klubb &"','"& email &"','"& team &"','"& frekvens1 &"','"& frekvens2 &"','"& frekvens3 &"','"& mekaniker &"')"
Conn.Execute(SQL)

Conn.Close
Set Conn=Nothing
 
Set newMail = CreateObject("CDONTS.NewMail")
newMail.From = "christian.sahle@swipnet.se"
newMail.To = Request.Form("email")
newMail.Subject = Request.Form("tavling")
newMail.Body = Request.Form("tavling") & Request.Form("klass") _
& Request.Form("licens") & Request.Form("namn") & Request.Form("gata") & Request.Form("postadress") _
  & Request.Form("personnr") & Request.Form("klubb") & Request.Form("email") & Request.Form("team") _
  & Request.Form("frekvens1") & Request.Form("frekvens2") & Request.Form("frekvens3") & Request.Form("mekaniker")
newMail.Send
Set newMail = Nothing

Set newMail = CreateObject("CDONTS.NewMail")
newMail.From = Request.Form("email")
newMail.To = "christian.sahle@swipnet.se"
newMail.Subject = Request.Form("tavling")
newMail.Body = Request.Form("tavling") & Request.Form("klass") _
& Request.Form("licens") & Request.Form("namn") & Request.Form("gata") & Request.Form("postadress") _
  & Request.Form("personnr") & Request.Form("klubb") & Request.Form("email") & Request.Form("team") _
  & Request.Form("frekvens1") & Request.Form("frekvens2") & Request.Form("frekvens3") & Request.Form("mekaniker")
newMail.Send
Set newMail = Nothing

End If

Response.Redirect "anmalningar.asp"
Else Response.Write "Skriv i förnamn och efternamn, tack."
End If
%>

Sedan undrar jag hur man får alla fält att skickas med i meddelande fältet via mail i newMail.Body för det saknas något här eller?

newMail.Body = Request.Form("tavling") & Request.Form("klass") _
& Request.Form("licens") & Request.Form("namn") & Request.Form("gata") & Request.Form("postadress") _
  & Request.Form("personnr") & Request.Form("klubb") & Request.Form("email") & Request.Form("team") _
  & Request.Form("frekvens1") & Request.Form("frekvens2") & Request.Form("frekvens3") & Request.Form("mekaniker")
Medlem sedan nov. 20017 144 inlägg
#2

Får du något felmeddelande?

Medlem sedan mars 20015 287 inlägg
#3

Lite OT, jag tror inte riktigt din första IF-sats gör vad den ska? Som det är nu kollar den att om något av fälten är ifyllda så kör vi.

Om det ska vara så, måste du kolla så många fält?

Angående din andra fråga, du har ju redan lagt in dina formuläsfält i variabler, använd dom sen i stället.

Medlem sedan jan. 200336 inlägg
#4

Detta fel får jag:

Sidan kan inte visas
Ett problem uppstod med sidan du försöker nå och den kan inte visas.

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

HTTP 500 - Internt serverfel
Internet Explorer

Medlem sedan mars 20015 287 inlägg
#5

Slå av "Vänliga felmeddelanden i IE"

Kanske kan du göra så här vad det gäller fråga två iofs:

For Each objField In Request.Form
	bodystr = bodystr & vbcrlf & Request.form(objField))
Next
newMail.Body = bodystr

Å sen, har inte Cdonts någon form av BCC istället för att skicka samma mail två gånger?

Medlem sedan jan. 200336 inlägg
#6

Menar du att jag ska ta bort IF-satsen?

Medlem sedan juni 200032 967 inlägg
#7

Det felmeddelandet skapas av Internet Explorer. Om du går in i inställningarna och avmarkerar Friendly http error messages / Egna http-felmeddelanden bör du få ett betydligt mer informativt felmeddelande.

Och välkommen till webForum skall du vara!

red: bättre sent än aldrig
solbulle: jo, .bcc.

Mvh,

Medlem sedan mars 20015 287 inlägg
#8

Nja, felet du får (fel ett :) ) är för att dina If-satser ej stämmer.

Ta bort den ensamma lilla End If på fjärde raden från slutet.

Medlem sedan mars 20015 287 inlägg
#9

Amen... inte nu igen, ursäkta... :r

Välkommen!

Medlem sedan jan. 200336 inlägg
#10

Jag tog bort den "end if" som du sa, så nu funkar det.

Tack för det tipset.

men var ska jag lägga in detta:

For Each objField In Request.Form
	bodystr = bodystr & vbcrlf & Request.form(objField))
Next
newMail.Body = bodystr

ska jag byta ut newMail.Body mot dena kod?

och nu får jag allt på en rad, vad ska jag skriva för att spalta upp det bättre.

Medlem sedan mars 20015 287 inlägg
#11

Testa att plocka bort:

newMail.Body = Request.Form("tavling") & Request.Form("klass") _
& Request.Form("licens") & Request.Form("namn") & Request.Form("gata") & Request.Form("postadress") _
  & Request.Form("personnr") & Request.Form("klubb") & Request.Form("email") & Request.Form("team") _
  & Request.Form("frekvens1") & Request.Form("frekvens2") & Request.Form("frekvens3") & Request.Form("mekaniker")

Och lägg in min kod där. ( I det övre stycket)

I det undre behöver du bara skriva:

newMail.Body = bodystr

Medlem sedan jan. 200336 inlägg
#12

Nu har jag nog lagt det på fel ställe, för nu får jag ett felmeddelande igen: sidan kan inte visas

Jag la in Bcc i den övre koden och tog bort den nedre som du sa.
Nu ser det ut så här:


 
Set newMail = CreateObject("CDONTS.NewMail")
newMail.From = "christian.sahle@swipnet.se"
newMail.To = Request.Form("email")
newMail.BCC = "christian.sahle@swipnet.se"
newMail.Subject = Request.Form("tavling")
For Each objField In Request.Form
	bodystr = bodystr & vbcrlf & Request.form(objField))
Next
newMail.Body = bodystr 

newMail.Send
Set newMail = Nothing

Ursäkta, jag är inte så bra på asp.

Medlem sedan jan. 200336 inlägg
#13

Det löste sig ändå.
Jag la in & vbcrlf & i mellan Request.Form

Request.Form("tavling") & Request.Form("klass")

Tack för hjälpen!!!!!!!

Medlem sedan mars 20015 287 inlägg
#14

Kalas! Kul att du fick till det.

För att göra livet lättare för dig själv, och oss ;) följ @nders råd här: http://www.webforum.nu/showthread.php?s=&postid=539075#post539075 (Ang. felmeddelanden.)

261 ms totalt · 4 externa anrop · v20260731065814-full.a51de22e
123 ms — deklarationer (db)
0 ms — hämta statistik (cache)
133 ms — hämta tråd, inlägg och bilagor (db)
126 ms — ändringar (db)