
PHPで返信メールにチェックボックスの値を表示したいのですが。。。
PHP初心者です。
request.phpという資料請求用のWEBページを作成しており、お問い合わせ項目内に
以下の様なチェックボックスを設けました。
<tr>
<th>ご希望される商品</th>
<td>
<input type="checkbox" name="kibo[]" value="a-set" /> Aセット<br />
<input type="checkbox" name="kibo[]" value="b-set" /> Bセット<br />
<input type="checkbox" name="kibo[]" value="c-set" /> Cセット<br />
<input type="checkbox" name="kibo[]" value="d-set" /> Dセット
</td>
</tr>
入力後の内容確認画面では、
<tr>
<th>ご希望される商品:</th>
<td class="subheader_txt_l"><?php echo implode(' / ', $_POST['kibo']);?></td>
</tr>
として、選択した項目が表示されるところまではできましたが、送信ボタン後、確認メールが
送られてくる仕組になっているのですが、メール本文内では【ご希望される商品】欄が空っぽで
返ってきます。。。
ちなみにメール本文作成の処理では、
$body .=
'【氏名】 '.$_POST['name1']."\n".
'【メールアドレス】 '.$_POST['mail']."\n".
'【住所】 '.$_POST['zyuusyo']."\n".
'【ご希望される項目】 '.$_POST['kibo']."\n".
'【お問い合わせ内容】 '.$_POST['comment']."\n\n".
値取得にあたり特別な関数が必要なのでしょうか。
ご教授頂けますと幸いです。よろしくお願いします。
No.3ベストアンサー
- 回答日時:
まったく何も表示されないならば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等でブラウザに出力させてみてください。
>duron 様
ご丁寧にありがとうございます!
できました!!
duron様のおっしゃる確認画面段階での受け渡し時に
<input type="hidden" name="kibo[]" value="<?php print(implode(' / ', $_POST['kibo']));?>">
としたら、できました!
ありがとうございます。
No.4
- 回答日時:
> ですが、「Array」すら表示されず、【ご希望される項目】のみが表示されております。
。。いや、うん、だから。。。^^;
『内容確認画面からメール本文作成処理へ受け渡しが出来ているかご確認ください。』
「内容確認画面」から「メール本文作成処理」へhiddenとかで受け渡しているのだと思ったのですが、それは ちゃんと受け渡せていますか?って事だったのですが^^;
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
VBAで重複チェックの仕方を教え...
-
Excel VBA:特定の文字列以降(...
-
findstrのerrorlevel
-
wordの差し込み印刷で文字...
-
shシェルスクリプト 空白行の...
-
「取得先」という表現について
-
classの再定義エラーについて
-
EXCEL、マクロ-改ページ行番号...
-
【C#】DataGridViewの最大列数...
-
XMLのタグの有無をPHPで判定し...
-
Smarty変数の値をJavascript変...
-
VB.NETでボリュームを取得・設...
-
ps3で久しぶりにCDの音楽情報取...
-
ExcelVBAで、FileSystemObject...
-
複数ページでセッションを使わ...
-
Google scholarがひらけなくな...
-
開始と終了を指定して、その間...
-
webサイトの参考資料:サイト名 ...
-
(Win32)ファイルパスから物理ド...
-
コンビニで住民票を取得した場...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
IFRAME内PHPのセッション変数取...
-
PHPで値を保持する方法
-
asp.netでのセッションを使用し...
-
VBAで重複チェックの仕方を教え...
-
フォームを使わずにPOST送信す...
-
【Java】投稿完了画面リロード...
-
php history.back()の戻るボタ...
-
セッションを使用したページ遷移
-
HTMLエスケープ処理とデーター...
-
PHP+MySQLからHTMLページを自動...
-
POSTで受け渡したものを保存し...
-
飛び先のランダムURLの取得方法...
-
cURL関数を使用したphpからのpo...
-
ログイン画面から入って、「戻...
-
BBSにダブルクォーテーションを...
-
アクセスでのデータ保存について。
-
ブラウザの戻るボタンで重複登...
-
ブラウザバックしてもチェック...
-
htmlspecialcharsについて
-
閉じるボタン「×」を制御したい
おすすめ情報