[html配列]
<form id="contact-form" action="./check.php" method="post"> <input type="hidden" name="sub_actions" value="confirm"> <li> <label for="E-MAIL">E-MAIL</label> <br> <input type="text" class="required email" name="e_mail" size="60" value=""> </li> <li> ITEM NUMBER(* multiple possible)<br> <ol id="item_num"> <li><input type="text" class="required item" name="item_num[]" size="30" value=""></li> </ol> <input type="button" value="Additional items" id="btn_add"> </li> <div class="bt"> <input type="submit" value="confirmation screen" name="submit"> </div> </form>
[JavaScript側]
// JavaScript Document jQuery(document).ready(function($) { var prefix_order_list = 'item_num[]'; // 品目入力欄のname属性の接頭辞 // "品目の追加"ボタンを押した場合の処理 $('#btn_add').click(function(){ // 品目入力欄を追加 var len_list = $('#item_num > li').length; var new_list = '<li><input type="text" size="30" name="' + prefix_order_list + len_list + '"></li>'; $('#item_num').append(new_list); // 削除ボタンの一旦全消去し、配置し直す $('#item_num input[type="button"]').remove(); len_list++; for (var i = 0; i < len_list; i++) { var new_btn = '<input type="button" value="delete">'; $('#item_num > li').eq(i).append(new_btn); } }); // 削除ボタンを押した場合の処理 $(document).on('click', '#item_num input[type="button"]', function(ev) { // 品目入力欄を削除 var idx = $(ev.target).parent().index(); $('#item_num > li').eq(idx).remove(); var len_list = $('#item_num > li').length; // 入力欄がひとつになるなら、削除ボタンは不要なので消去 if (len_list == 1) $('#item_num input[type="button"]').remove(); // 入力欄の番号を振り直す for (var i=0; i<len_list; i++) { $('#item_num > li').eq(i).children('input[type="text"]').attr('name', prefix_order_list + i); } }); });
[PHP確認画面]
session_start(); $_SESSION = $_POST; ?> <form id="contact-form" action="./send.php" method="post"> <tr> <th>E-MAIL</th> <td><?php echo htmlspecialchars($_POST['e_mail']);?></td> </tr> <tr> <th>ITEM NUMBER</th> <td> <?php $itemArray = $_POST['item_num']; foreach ($itemArray as $value){ print 'ITEM:'.$value.'<br>'; } ?> </td> </tr> </tbody> </table> <div class="bt"> <a href="javascript:history.back();"> <input type="button" value="戻る"> </a> <input type="submit" value="送信" name="submit"> </div> </form>
[PHP送信画面]
<?php session_start(); $add_header="From:xxxx@gmail.com\r\xn"; $add_header .= "Reply-to: xxxx@gmail.com\r\n"; $add_header .= "xxxx". phpversion(); $opt = '-f'.'xxxx@gmail.com'; $message =<<<HTML It is a confirmation of the order content. [1.E_MAIL] {$_SESSION['e_mail']} [2.ITEM NUMBER] After confirming the order details, we will contact you than the person in charge. Please wait a moment. HTML; // カレントの言語を日本語に設定する mb_language("ja"); mb_internal_encoding("UTF-8"); mail($_SESSION['e_mail'],"xxxxx[Order] confirmation e-mail",$message,$add_header,$opt); mail('xxxx@gmail.com',"お問い合わせがありました",$message,$add_header,$opt); session_destroy(); // セッションを破棄 ?>
[PHP送信画面]の[2.ITEM NUMBER]に配列内の情報を全てメールに表示させたいのですが、うまくいきません。
よきアドバイスを頂けると幸いです。
確認画面に表示させるところまではできました。
送信画面で$_SESSION['item_num']とすると届いたメール本文にはArrayと表示されるだけになってしまうのです。
回答2件
あなたの回答
tips
プレビュー