3

Google などで調べてみましたが、探しているものが見つからないので、仲間の SE メンバーに少し助けを求めてください。

私のページに含まれているフォームがあり、サイト全体で一貫しています。Classic ASPの通常ルートである、ページを更新せずに問い合わせフォームを送信したい。

メールスクリプトを含む別の ASP ページがあり、正常に動作して電子メールを送信しますが、Ajax を使用してそのページを呼び出し、電子メールを送信し、送信されたことをユーザーに通知したいと考えています。

どんな助けでも大歓迎です。

4

1 に答える 1

8

従来の ASP、ASP.NET、PHP、またはその他の動的言語。実際に実行しているのはFORM POSTであり、それは 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なるため、メールを送信すると次のようになります。datasuccess

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 に答える