2012-12-22 68 views
3

我已經瀏覽過Google等,但找不到任何我想要的內容,所以請求我的SE同胞們幫助一下。經典ASP - 使用Ajax提交查詢表格而不刷新

我有一個表單,它包含在我的頁面中,並且在整個網站中都是一致的。我想提交沒有頁面刷新的查詢表單,這是使用Classic ASP的正常路由。

我有一個單獨的ASP頁面,其中包含我的郵件腳本,並且工作正常併發送電子郵件,但是我想用Ajax調用該頁面,發送電子郵件,然後通知用戶它已發送。

任何幫助,將不勝感激。

回答

7

經典的ASP,ASP.NET,PHP或任何其他動態語言,它與你真正在做的一樣是表格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將在success方法data變量,所以以後你發送你的電子郵件:

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"; 
    } 
} 
+0

你的JQuery是完美的,謝謝。然而,「成功」部分重定向,我得到你爲什麼這樣做,但有沒有辦法用另一個消息替換聯繫表單?如「感謝您的詢問,我們會盡快聯繫」? –

+0

我已經想通了。我把它放在jQuery中:$('#form-contact-sidebar')。hide(); \t $('#submit-result')。show(); –

+0

我已將其標記爲已回答。非常感謝@ balexandre –