我在ASP中为我的一个朋友做了一点工作(因为他的服务器运行IIS)我通常用PHP编写网站脚本,这在ASP中并不为人所熟知。然而这项工作很简单,所以我接受了。他想要的是一个表单页面,他可以插入和/或编辑现有的表单元素,以及一个ASP页面,它可以呈现它们并将结果发送到电子邮件。这一切在我的脚本中都很有效。唯一的问题是,它没有按照在表单html页面上看到的表单元素进行排序,它以某种方式混合它们。有没有办法解决这个问题,所以根据它们在html文档中的位置对它们进行排序?我的代码是这样的:
<%
Dim besked
Dim beskedhtml
for each x in Request.Form
if x = "submit" Then
Elseif x = "modtager" Then
Else
besked = besked & x & " : " & Request.Form(x) & "" & vbCrLf & "" & vbCrLf & ""
beskedhtml = beskedhtml & "<b>" & x & "</b>" & " : " & Request.Form(x) & "<br><br>"
End If
next
Set myMail=CreateObject("CDO.Message")
myMail.Subject=Request.Form("emne")
myMail.From = "from@hej.com"
myMail.To=Request.Form("modtager")
myMail.HTMLBody=beskedhtml
myMail.TextBody=besked
myMail.Send
set myMail=nothing
Response.Write(beskedhtml & " was send.")
%>
修改 我自己想出来了。 要对请求进行排序,您需要使用请求上的Count()函数对其进行迭代,如下所示:
for x = 1 to Request.Form.count()
if Request.Form.key(x) = "submit" Then
Elseif Request.Form.key(x) = "modtager" Then
Else
besked = besked & Request.Form.key(x) & " : " & Request.Form.item(x) & "" & vbCrLf & "" & vbCrLf & ""
beskedhtml = beskedhtml & "<b>" & Request.Form.key(x) & "</b>" & " : " & Request.Form.item(x) & "<br><br>"
End If
next
然后用Request.Form.key(x)
控制它。对于表单元素名称和
Request.Form.item(x)
表示元素的值。
快乐编码全部
答案 0 :(得分:1)
我认为这篇文章提供了解释。
http://www.4guysfromrolla.com/aspfaqs/ShowFAQ.asp?FAQID=64
要获取特定值,您需要根据需要检索它们,或将它们移动到一组变量中供以后使用。通常后者是更理想的方法,因此可以在整个过程中验证输入。
答案 1 :(得分:0)