3

我已经通过 Google 等查看过,但找不到任何我想要的东西,所以请我的 SE 同事寻求帮助。

我有一个包含在我的页面上的表单,并且在整个站点中都是一致的。我想在不刷新页面的情况下提交查询表单,这是 Classic ASP 的正常路线。

我有一个单独的 ASP 页面,其中包含我的邮件脚本,可以正常工作并发送电子邮件,但是我想使用 Ajax 调用该页面,发送电子邮件,然后通知用户它已发送。

任何帮助,将不胜感激。

4

1 回答 1

8

经典的 ASP、ASP.NET、PHP 或任何其他动态语言,与您真正在做的一样是FORM POST ing,那是 HTML,而不是真正的 ASP。

假设你有一个像

<form id="frm-submit" action="/SendEmail.asp" action="POST">

   ...

   <input type="submit" value="Submit form" />
</form>

在页面中添加一点 jQuery 作为

$(function() {

   $("#frm-send").submit(function() {
      var data = $(this).serialize(),
          action = $(this).attr("action"),
          method = $(this).attr("method");

      $(".loading").show(); // show loading div
      $.ajax({
         url: action,
         type: method,
         data: data,
         success: function(data) {
             // all went well...
         },
         error: function(err) {
             // there was something not right...
         },
         complete: function() {
            $(".loading").hide(); // hide the loading
         }
      });

      return false; // don't let the form be submitted
   });

});

你准备好了。


在您的sendMail.asp页面中,您发送到的所有内容都Response.Write将在方法的data变量中success,因此在您发送电子邮件后,您将拥有:

Response.Write("done")
Responde.Flush()
Response.End()

在 javascript 部分,您可以像这样处理它:

success(data) {
    if(data === "done")
    {
       // Super duper! let's show the user a Thank you for submit page
       document.location = "/ThankYou.asp";
    }
}
于 2012-12-22T10:24:37.343 回答