ASP Data Collection Forms- Creating the Response Page
Author: JoJo
Author's Site: Webade
Reference ID: 15623
Coding the Response Page: VB Script
The response is initiated entirely with VB Script, we have no forms or
anything else to add on this page. Your response page will doubtless incorporate
the rest of your design, however the response information can be dragged
around your page in design view so don't worry about complications in
fitting this data into your design, because there aren't any!
OK so lets get this tutorial finished... nearly done now!
Once again we need to declare our use of VBScript, we know that this
goes above the opening <html> tag so we'll add this to our page
without further ado!
<%@LANGUAGE="VBSCRIPT"%> <html>
Creating the Workhorse
The following section is the block of script that does all the work for
us, it calls the form elements from the previous page using a method called
Request.Form. The way we lay out the code on the response page will also
reflect how the data is returned to the client, as I mentioned earlier
we will lay the returned data out in such a way that it remains legible
to the client without them having to squint at the information to find
where one section starts and another finishes.
The code block below sits in the body of our page:
<%
my_from=request("mail-fromName") my_fromAddress=request("mail-fromaddress") my_to=request("mail-toName") my_toAddress=request("mail-toaddress") my_subject=request("mail-subject") my_relay=request("mail-relay")
Set Mailer = Server.CreateObject("SMTPsvg.Mailer") Mailer.RemoteHost = my_relay Mailer.FromName = my_from Mailer.FromAddress = my_fromAddress Mailer.AddRecipient my_to, my_toaddress Mailer.Subject = my_subject
sBodyText = "The following is feedback from my web site." & vbcrlf & vbcrlf sBodyText = sBodyText & "First Name: " & Request.Form("firstname") & vbCrLf sBodyText = sBodyText & "Last Name: " & Request.Form("lastname") & vbCrLf sBodyText = sBodyText & "Company: " & Request.Form("company") & vbCrLf sBodyText = sBodyText & "E-Mail Address: " & Request.Form("email")
sBodyText = sBodyText & vbCrLf & Chr(13) & Chr(10) & Chr(13) & Chr(10) sBodyText = sBodyText & "" & Request.Form("feedback") & vbCrLf sBodyText = sBodyText & "" & Request.Form("comment") & vbCrLf
Mailer.BodyText = sBodyText
If Mailer.SendMail then
Msg = "Thank you for your enquiry.<br> A member of staff will contact you shortly."
Else
MSG = "mail was not sent successfully<br>
MSG = MS G& mailer.response & "<br>"
End If
response.write MSG
%>
Understanding the Code
The first section of code should be looking quite familiar by now, this
is calling the information that we inserted on the form.asp page about
where the mail goes to, who it is from etc. Can you see the request statements?
They are the ones set out like this request("mail-fromName"),
look familiar? they should. These are the names we gave to our hidden
fields on the form.asp page, and they are asking for the value that those
hidden fields supplied.
my_from=request("mail-fromName")
my_fromAddress=request("mail-fromaddress")
my_to=request("mail-toName")
my_toAddress=request("mail-toaddress")
my_subject=request("mail-subject")
my_relay=request("mail-relay")
Lets look at the next section of code:
Set Mailer = Server.CreateObject("SMTPsvg.Mailer")
Mailer.RemoteHost = my_relay
Mailer.FromName = my_from
Mailer.FromAddress = my_fromAddress
Mailer.AddRecipient my_to, my_toaddress
Mailer.Subject = my_subject
The first line of code Set Mailer = Server.CreateObject("SMTPsvg.Mailer")
is creating an instance of the SMTP out going mail object, this will allow
our form data to be sent on to the client.
Server.CreateObject is the command or instruction ("SMTPsvg.Mailer")
is the object that will be created.
Retrieving the information the viewer inserted:
sBodyText = "The following is feedback from my web site."
sBodyText = sBodyText & vbcrlf & Chr(13) & Chr(10) & Chr(13) & Chr(10)
sBodyText = sBodyText & "First Name: " & request.form("firstname") & vbCrLf
sBodyText = sBodyText & "Last Name: " & request.form("lastname") & vbCrLf
sBodyText = sBodyText & "Company: " & request.form("company") & vbCrLf
sBodyText = sBodyText & "E-mail Address: " & request.form("email")
sBodyText = sBodyText & vbCrLf & Chr(13) & Chr(10) & Chr(13) & Chr(10)
sBodyText = sBodyText & "" & request.form("feedback") & vbCrLf
sBodyText = sBodyText & "" & request.form("comment") & vbCrLf
A closer look at the code above, using the firstname string as an
example:
sBodyText = sBodyText & "First Name: " & Request.Form("firstname") & vbCrLf
- Firstly it is declaring that the information to follow is text that
will sit in the body of the email.
- & "First Name: " will be
the first text shown on this line, use this to create a title or header
for the following information.
- & Request.Form("firstname")
is saying any information entered into the form element called firstname
will be inserted here.
- & vbCrLf ends that line of text.
- & Chr(13) & Chr(10) this
section of code does the same job as the <br> tag, you will
notice that on occasions the code above has this repeated. Two
& Chr(13) & Chr(10) straight after each other, this will
give us a clear line after this declaration, breaking the returned
data into sections.
Adding a Section Title
sBodyText = sBodyText & "" & Request.Form("feedback") & vbCrLf
On the line of code above (our seventh hidden field) you will notice
that the line title is blank, this is because we do not need any information
here. This will be a section header and it will take its value from the
value we gave it on the form.asp page, when the form is submitted.
If Mailer.SendMail then
MSG = "Thank you for your enquiry.<br> A member of staff will contact you shortly."
Else
MSG = "mail was not sent successfully<br>"
MSG = MSG& mailer.response & "<br>"
End If
response.write MSG
The response page will let the user know what has happened to the information
they supplied. Iit does this by displaying one of two preset messages on
the page using the response.write statement. If the mail is sent successfully
it will display the thank you message, should the mail fail to be sent
it will display the mail was not sent message. Both of these messages
can be customized as you wish.
The Returned Data
The following is feedback from my web site.
First Name: JoJo
Last Name: Caine
Company: Webade
Email Address: jojo@webade.co.uk
:: Feedback on the web site ::
I like your web site, I think it has a
good use of colour. I would like to
see the text a little bit bigger though!
The data from the form & response pages we have just made would return
the data as above. You can see what I was driving at in making sections
of returned data to keep the information ordered, you can make as many
blocks of information as you wish using this method.
Well that's it! you can now make your own ASP data collection forms and
to get you on your way you can download a starting point that consists
of the pages we have just made.
That completes the tutorial.
The Download(s)
Download a data collection form starting point from here.
|