2012-12-22 1 views
3

J'ai jeté un coup d'œil à Google etc mais je ne trouve rien pour ce que je cherche, alors j'ai demandé un peu d'aide à mes collègues membres du SE.Classic ASP - Utilisez Ajax pour soumettre un formulaire de demande sans actualiser

J'ai un formulaire qui est contenu sur ma page et qui est cohérent sur tout le site. Je voudrais soumettre le formulaire de demande sans rafraîchissement de la page qui est la route normale avec ASP classique. J'ai une page ASP séparée qui contient mon script de messagerie et qui fonctionne bien et envoie l'e-mail, mais je voudrais utiliser Ajax pour appeler cette page, envoyer l'e-mail, puis informer l'utilisateur que son a été envoyé.

Toute aide serait appréciée.

Répondre

7

Classique ASP, ASP.NET, PHP ou tout autre langage dynamc, tout ce que vous faites est FORM POST ing, et c'est du HTML, pas réellement ASP.

En supposant que vous avez une forme comme

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

    ... 

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

ajouter un peu de jQuery à la page

$(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 
    }); 

}); 

et vous êtes prêt à aller.


dans votre page sendMail.asp, tout ce que vous envoyez à Response.Write sera dans la variable data de la méthode success, donc après avoir envoyé l'e-mail que vous avez:

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

dans la partie javascript, vous peut gérer comme:

success(data) { 
    if(data === "done") 
    { 
     // Super duper! let's show the user a Thank you for submit page 
     document.location = "/ThankYou.asp"; 
    } 
} 
+0

Votre JQuery est parfait, merci. Cependant la partie "succès" redirige ce que je comprends pourquoi vous l'avez fait, mais existe-t-il un moyen de remplacer le formulaire de contact par un autre message? Tels que "Merci pour votre demande, nous serons bientôt en contact"? –

+0

Je l'ai compris. J'ai placé cela dans le jQuery: $ ('# form-contact-sidebar'). Hide(); \t $ ('# submit-result'). Show(); –

+0

Je l'ai marqué comme réponse. Merci beaucoup @balexandre –

Questions connexes