dounokouno / TransmitMail

Copyright表示不要のPHP製汎用メールフォームシステム
http://etc.dounokouno.com/TransmitMail/
MIT License
142 stars 48 forks source link

入力内容でfinishページの表示を切り替えたい #53

Closed ghost closed 5 years ago

ghost commented 5 years ago

tagawa様 はじめまして 知識のない者でも使えるフォームを公開いただきありがとうございます。

  1. メールの内容でfinishページを切り替えるか、
  2. finishページにメールの内容を伝える方法

はありますでしょうか?

入力後、確認せずに送信、finishページを表示時に(ここまでは、自力でできています) 「お問い合わせ」「申し込み」をラジオボタンで選択いただいた内容に応じた、finishページのメッセージを表示したいのです。

  1. だとそれぞれ用のfinishページを用意
  2. finishページに入力内容の一部をおくれれば、それぞれの文章を同じページに入れておき、jsで表示切替

GET値を入力画面、確認画面、メール本文に表示できます。とあり、出来る筈だと思うのですが、input submitにパラメータを渡す方法がわからず、form postをgetに変えたりしてみましたが失敗に終わりました。2つインストールすると、csvが別れてしまうため、できれば切り替え表示にしたいです。

どうぞよろしくお願いいたします。

dounokouno commented 5 years ago

@hajimetedesu 様

ご質問の件に関しましては、いくつか方法がありますが、入力内容を finish.html で受け取って、それに対して JavaScript でリダイレクトや表示内容を切り替える方法が簡単だと思います。

finish.html では confirm.html と同じように入力内容を受け取ることができますので、例えば、 input.html に「お問い合わせ種別」というラジオボタンがあったとしまして、

<input type="radio" name="お問い合わせ種別" value="お問い合わせ" {$checked.お問い合わせ種別.お問い合わせ}>
<input type="radio" name="お問い合わせ種別" value="申し込み" {$checked.お問い合わせ種別.申し込み}>

finish.html で下記のように値を受け取ることが可能ですので、

{$お問い合わせ種別.value}

あとは、その内容を元に JavaScript でリダイレクトや表示の切り替えを行っていただくような形です。リダイレクトだと、例えば下記のようなコードになるかと思います。

<script>
var contact_type = '{$お問い合わせ種別.value}';
if (contact_type === 'お問い合わせ') {
    location.href = 'contact.html';
} else if (contact_type === '申し込み') {
    location.href = 'application.html';
}
</script>

ご参考になれば幸いです。

ghost commented 5 years ago

tagawa様 素早いレスポンス、ありがとうございました。 ご教示いただいた内容を元に修正したところ、希望する結果が得られました。

「GET値を」マニュアルに合ったのを

のことと勘違いしてしまっていました。

サポート大変助かりました。 また、何かありましたら、ご相談いたします。 今後も、長く続けていただければ幸いでございます。

ありがとうございました。