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あたりが難しいです。

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

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

コロナの影響でみんな大変だから俺もなんかできること

僕は福井県に住んでいるのですが、戦時中に福井大空襲にあい、その直後に大震災にあってボロボロになった話をおばあちゃんに聞きました。

それでも復活することができ、不死鳥の町と言われるようになりました。

先人達には心から感謝し尊敬します。

リーマンショック、東日本大震災、コロナと数十年に一度と言われる被害が立て続けに起きていますが、僕たちは強いです。

今は苦しいかもしれませんがきっと復活できます。

僕は低学歴ですし小さな小さな粒でしかないですが、プログラミングに関しては必死に勉強し15年以上ごはんにありつけています。

プログラミングを勉強している人の役に立てるほどのスキルはあると思っています。

なので1人でもんもんと悩んでいる若手のエンジニア向けに質問を受け付けることにします。

自宅で待機されている間もパソコンとインターネットがあればプログラミングの勉強はできます。

  • PHP
  • SQL
  • HTML・CSS
  • jQuery

とは言ってもいきなり答えを聞いていたのではなかなか成長できないと思うのです。

なので質問の際には次のことをご連携ください。

  • 何をやりたいか
  • どんなことを調べたか、検索キーワードと参考にしたページのURL
  • 調べた結果どこが分からないか
  • できるなら試したコード

メッセージいはとりあえずTwitterにでもください。

質問はこちら

すぐに返事できないかもしれませんがご了承ください。

コメントを残す

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

CAPTCHA