PHP+jQueryで画面遷移しないでメール送信する方法

画面遷移をせずに、PHPでメール送信送信をしたい

とご質問を頂きました。

一応補足で、たぶんお問合せフォームのような画面で送信したときに画面遷移をせずに入力内容をメールで送信したいのだと思います。

 

この場合はAjaxの非同期通信を使います。

Ajaxで非同期通信をする基礎は以下の記事を参考にしてください。

≫ Ajaxとは?jQueryで非同期通信を行う方法

 

それとメール送信に関しても以前記事を作成しました。

≫ PHPで入力されたメールアドレスにメールを送信するサンプルでForm処理をイメージする

 

上記2つの記事をベースにサンプルを作成します。

PHP+jQueryで画面遷移なしでメール送信するサンプルコード

入力内容をAjaxで送信し、結果のメッセージを画面上に表示しています。

フォーム入力画面(HTML)

formタグに関しては通常のものと同じです。

この中にお問合せなどに必要な項目を追加します。

ただ、formタグに sendmail をIDとして持たせており、sendmailのformが送信されたら送信内容を取得しAjaxで送信するようにしています。

Ajax通信の後には return false; を入れることで元々のsubmitが拒否されます。

 

Ajaxで非同期通信をする基礎は以下の記事を参考にしてください。

≫ Ajaxとは?jQueryで非同期通信を行う方法

メール送信(PHP)

PHPファイルは「送信」ボタンを押したら非同期通信(Ajax)で呼ばれます。

画面で入力した名前とメールアドレスを受け取り、ただしく入力されていたらメールを送信します。

正常に送信した場合や、エラーになった場合はそれぞれ異なるメッセージを返します。

 

Ajaxで呼び出し元に値を返すには echo で出力すればOKです。

 

メール送信に関する内容は次の記事を参考にしてください。

≫ PHPで入力されたメールアドレスにメールを送信するサンプルでForm処理をイメージする

まとめ

Ajaxを使って画面遷移をしないでPHPを実行しメール送信するサンプルを紹介しました。

個人的にはAjaxを使うJavascriptあたりが難しいです。

通信さえ出来てしまえば後はそれほど難しくないコードになっています。

最初はコピペして、部分的に変えてみたりして動作を確認してください。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

CAPTCHA