0

だから私はjavascriptと一緒にasp.netを教えようとしています。Web サイト テンプレートをダウンロードして、ASP サイトに変換しました。JavaScriptがphp関数を呼び出して電子メールを送信する連絡先フォームがあります。ホスティング サイトで php を使用して電子メールを送信できません。

テンプレートには、MailHandler.ashxasp でメールを送信するために使用できるはずのファイルが含まれていました。私は調査を行いましたが、このコードは正常に機能していると思います。私の質問は、javascript が PHP ファイルを呼び出すために使用された場所です。それを変換してこの MailHandler ファイルを呼び出すにはどうすればよいですか?

これは、私のphpファイルを呼び出す関連コードです:

$.ajax({
    type: "POST",
    url:_.mailHandlerURL,   //this value is the path to the php file
    data:{
        name:_.getValFromLabel($('.name',_.form)),
        email:_.getValFromLabel($('.email',_.form)),
        phone:_.getValFromLabel($('.phone',_.form)),
        fax:_.getValFromLabel($('.fax',_.form)),
        state:_.getValFromLabel($('.state',_.form)),
        message:_.getValFromLabel($('.message',_.form)),
        owner_email:_.ownerEmail,
        stripHTML:_.stripHTML
},

これがphpファイルへのpostメソッドを呼び出していることは理解していますが、Mailhandlerファイルでpostメソッドを呼び出すにはどうすればよいですか?

これは私のハンドラファイルです:

public class Handler : IHttpHandler {
    public void ProcessRequest (HttpContext context) {

             //create mail client, create message, send email

    }
}
4

1 に答える 1

1

この以前の投稿$.get, $.post, $.ajax, $(elm).load to .ashx page problem を確認してください。問題はフォーマットにあると思います - data: 属性を参照してください。

_.mailHandlerURL を ashx ファイルの URL に設定する必要があります。

私はそれがもっとこのように見えるべきだと信じています:

var dataParams = "name="+_.getValFromLabel($('.name',_.form));
    dataParams += ", email="+_.getValFromLabel($('.name',_.form));
        // etc for the rest 
$.ajax({
    type: "POST",
    url:_.mailHandlerURL,   //this value is the path to the php file
    data:dataParams
},

このコードが、Java スクリプトの最後の } の後に閉じ括弧を追加し、コンマの代わりにセミコロンを追加する必要がある場合とまったく同じである場合:

$.ajax({
    type: "POST",
    url:_.mailHandlerURL,   //this value is the path to the php file
    data:dataParams
});
于 2012-08-03T21:02:10.250 に答える