- ベストアンサー
PHPで返信メールにチェックボックスの値を表示したいのですが
- PHP初心者のため、request.phpというWEBページで資料請求用のフォームを作成しました。
- チェックボックスで選択した項目を確認画面では表示できますが、返信メールでは表示されません。
- 値取得に特別な関数が必要かどうか教えていただきたいです。
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
まったく何も表示されないならばNo.2の方が言うように値の受け渡しができていないのでしょう。 入力画面-(1)->確認画面-(2)->メール処理とすると ありがちなのは(2)の部分でデータがPOSTされていないということです。 (1)でPOSTされたデータは特に何もしなければ(2)で再度ポストされることはないです。 (2)で入力画面の入力値を再度POSTするためにはhiddenで値を設定すればよいです。 <tr> <th>ご希望される商品:</th> <td class="subheader_txt_l"><?php echo implode(' / ', $_POST['kibo']);?></td> <input type="hidden" name="kibo" value="<?php echo implode(' / ', $_POST['kibo']);?>" /> </tr> ↑のようにしておくとメール処理では$_POST['kibo']に連結された状態で値がセットされると思います。 氏名とかはメール処理で入ってくるとしたらちょっと不可解ですが確認画面でechoで出力したのではなくテキストフィールドをreadonlyにして表示したのならありかな?とも思います。 POSTはちゃんとやってるはずだよ、というならば正しくPOSTできていないことが考えられます。 (2)でPOSTしたときにnameが'kibo'になってなかったりするかもしれません。 またformの中に入ってないのかもしれません。その辺は確認画面のソース(phpじゃなくてhtmlとして出力されたもの)を表示してみて正しく確認画面が作られているか確認してください。 それでもダメだったら・・・文字コード関係かもしれません。 メール送信処理で、メールを送る直前($bodyの内容が確定した時点)でprint等でブラウザに出力させてみてください。
その他の回答 (3)
- bm_hiro
- ベストアンサー率51% (200/388)
> ですが、「Array」すら表示されず、【ご希望される項目】のみが表示されております。。。 いや、うん、だから。。。^^; 『内容確認画面からメール本文作成処理へ受け渡しが出来ているかご確認ください。』 「内容確認画面」から「メール本文作成処理」へhiddenとかで受け渡しているのだと思ったのですが、それは ちゃんと受け渡せていますか?って事だったのですが^^;
お礼
>bm_hiro 様 すみません。ほんと無知なものでまともなお応えすらできず、脱力させてしまいました。
- bm_hiro
- ベストアンサー率51% (200/388)
> '【ご希望される項目】 '.$_POST['kibo']."\n". ちゃんと、内容が受け渡されていれば、↑これだったとしても、「空っぽ」という事はなく、「Array」と表示されるはずです。 内容確認画面からメール本文作成処理へ受け渡しが出来ているかご確認ください。
お礼
>bm_hiro 様 お返事ありがとうございます。 ですが、「Array」すら表示されず、【ご希望される項目】のみが表示されております。。。
- duron
- ベストアンサー率77% (73/94)
出力時にimplodeで配列「$_POST['kibo']」を結合して出力しています。 ですのでメール本文作成時も '【ご希望される項目】 '.implode(' / ', $_POST['kibo'])."\n". とする必要があります。
お礼
> duron 様 ご回答ありがとうございます。 ご教示頂いた通りにしてみましたが、やはりブランクとなってしまいます。。。 その他、考慮すべきことはありますでしょうか?
お礼
>duron 様 ご丁寧にありがとうございます! できました!! duron様のおっしゃる確認画面段階での受け渡し時に <input type="hidden" name="kibo[]" value="<?php print(implode(' / ', $_POST['kibo']));?>"> としたら、できました! ありがとうございます。