将查询字符串从asp传递给htm文件vbscript

时间:2012-11-27 05:40:47

标签: asp-classic vbscript

我有2个文件,一个SendEmail.asp和一个Home.htm文件。

在Home.htm中,我将VB脚本中的一些值传递给SendEmail:

document.formname.action = "SendEmail.asp?homepage =" + window.location.href;

现在,当电子邮件成功完成后,我想将参数发送到htm文件并显示成功消息。

现在我以这种方式重定向到home.htm:

response.redirect(request.QueryString("homepage"))

如果我添加任何查询字符串,如home.htm?n1=success,那么我收到错误。请提供宝贵的建议和答案。

代码在home.htm文件中:

<script language="javascript" type="text/javascript"> 
function fnSubmit()
{
  var retValue=true;
  if(retValue)
  {
    if(document.formname.txtName.value=='')
    {
        alert("Please enter Name");
        document.formname.txtName.focus();
        retValue=false;
    }
  }
  if(retValue)
  {
    if(checkEmail(document.formname.txtEmail, "Email", false)==false)
    {
        alert("Please enter Email");
        document.formname.txtEmail.focus();
        retValue=false;
    }
  }
  if(retValue)
  {
    if(document.formname.txtPhone.value=='')
    {
        alert("Please enter Phone No.");
        document.formname.txtPhone.focus();
        retValue=false;
    }
  }
  if(retValue)
  {
    if(document.formname.txtQuery.value=='')
    {
        alert("Please enter Your Query");
        document.formname.txtQuery.focus();
        retValue=false;
    }
  }
  if(retValue)
  {      
      document.formname.action = "SendEmail.asp?homepage =" + window.location.href;
      document.formname.submit(); 
  }
return false;

</script>
按钮上的

单击:

onclick="javascript:fnSubmit();" 

在SendEmail.asp文件中:

<%@  language="VBScript" %>
<%Option Explicit%>
<%
Dim Uploader, File, FileSys, FilePath, UploadFileName, strHTML, subject, Mailer, EmailAddress
subject = request("txtSubject")
EmailAddress = request("txtEmail")
strHTML = " Name : "&request("txtName")&" Email : "&request("txtEmail")&" Query : "&request("txtQuery")

Set Mailer=CreateObject("CDO.Message")
        Mailer.Subject="accurate-data-entry.com:: new"&subject
        Mailer.From= request("txtEmail")                
        Mailer.To="abc@gmail.com "
        Mailer.HTMLBody=strHTML        
        Mailer.Configuration.Fields.Item _
       ("http://schemas.microsoft.com/cdo/configuration/sendusing")=2
        Mailer.Configuration.Fields.Item _
        ("http://schemas.microsoft.com/cdo/configuration/smtpserver")="smtp.gmail.com"
        Mailer.Configuration.Fields.Item _
        ("http://schemas.microsoft.com/cdo/configuration/smtpserverport")=465  
        Mailer.Configuration.Fields.Item _
        ("http://schemas.microsoft.com/cdo/configuration/smtpusessl") = 1
        Mailer.Configuration.Fields.Item _
        ("http://schemas.microsoft.com/cdo/configuration/smtpconnectiontimeout") = 60
Mailer.Configuration.Fields.Item _ 
("http://schemas.microsoft.com/cdo/configuration/smtpauthenticate") = 1
Mailer.Configuration.Fields.Item _ 
("http://schemas.microsoft.com/cdo/configuration/sendusername") ="abc@gmail.com" 
Mailer.Configuration.Fields.Item _ 
("http://schemas.microsoft.com/cdo/configuration/sendpassword") ="xyz"  
        Mailer.Configuration.Fields.Update
        Mailer.send
        Set Mailer = nothing   
'Response.write("Done Successful") 
response.redirect(request.QueryString("homepage "))
%>

如果我正在添加Response.Write,我收到错误消息:

  

CDO.Message.1错误'80040213'

     

传输无法连接到服务器。

     

/SendEmail.asp,第41行

第41行是Mailer.send

谢谢

1 个答案:

答案 0 :(得分:0)

您需要使用jquery使用AJAx提交表单。 Jquery将获取所有表单变量并将其提交到您的asp页面以发送电子邮件。在asp页面中,摆脱response.redirect。重定向不是必需的,将打破ajax响应。而不是在asp页面做一个response.write“感谢你的消息”或类似的东西。

看一下Jquery Ajax文档。

    $.ajax({
   type: "POST",
   url: "SendEmail.asp",
   dataType: 'text',
   data: { username: username, password: password },
   success: function(data) {
     if(data == 'Incorrect password'){
       $('#results_callback').html(data);        
     }
     else{
       $('#results').html(data);
     }
   },
   error: function(msg) {
    alert("O NOES");
   }
});