我已经通过 Google 等查看过,但找不到任何我想要的东西,所以请我的 SE 同事寻求帮助。
我有一个包含在我的页面上的表单,并且在整个站点中都是一致的。我想在不刷新页面的情况下提交查询表单,这是 Classic ASP 的正常路线。
我有一个单独的 ASP 页面,其中包含我的邮件脚本,可以正常工作并发送电子邮件,但是我想使用 Ajax 调用该页面,发送电子邮件,然后通知用户它已发送。
任何帮助,将不胜感激。
我已经通过 Google 等查看过,但找不到任何我想要的东西,所以请我的 SE 同事寻求帮助。
我有一个包含在我的页面上的表单,并且在整个站点中都是一致的。我想在不刷新页面的情况下提交查询表单,这是 Classic ASP 的正常路线。
我有一个单独的 ASP 页面,其中包含我的邮件脚本,可以正常工作并发送电子邮件,但是我想使用 Ajax 调用该页面,发送电子邮件,然后通知用户它已发送。
任何帮助,将不胜感激。
经典的 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";
}
}