※ ChatGPTを利用し、要約された質問です(原文:メール送信フォームの形)
メール送信フォームの形についての質問
このQ&Aのポイント
メール送信プログラムを組んでいます。一括送信や1件送信なら問題ないのですが、フォームでチェックを入れた顧客にだけまとめて送信する場合のやり方が浮かんできません。
顧客を選択する形としてチェックボックスを作成しましたが、データの整理方法が分からず困っています。配列の中に配列が入ってしまう形になってしまいます。
最終的には送信先のIDだけを1つの変数に整理したいと思っていますが、どのような記述と受け取り方が適切か分かりません。解決策を教えてください。
メール送信プログラムを組んでいます。
一括送信や1件送信なら問題ないのですが、フォームでチェックを入れた顧客にだけまとめて送信する場合のやり方が浮かんできません。
送信処理の前段階として、顧客を選択する形としてこのようにしてみました。
この前に$scaleに抜き出した顧客数の数を入れてその数だけループさせてます。
for($j=0;$j<$scale;$j++){
$rows=mysql_fetch_array($result[result]);
echo "<input type=\"checkbox\" name=\"to[$j]\" value=\"$rows[id]\">$rows[id]:$rows[name]<br />\n";
}
このような形でチェックボックスを作ってみたのですが、よく考えるとこれだと・・・$_POST[to[$j]]といった配列の中に配列が入ってしまう形になるので、データとして成り立ってないかなと思うのですが・・・
多重配列にするのであれば$_POST[to][$j]のような形にならないといけないかと(by 手元の本)
name=\"to[$j]\"の部分を単純にname=\"$j\"とし、POSTのデータをループして1つにまとめる方法も考えましたが、それだとIDとは関係のないもの(たとえば$_POST[submit])までがいっしょこたんに入ってしまうので、どう対処していいか分からず困っています。
最終的にはPOSTで受けたデータの中で送信先のIDだけを配列ではない1つの変数(Perlでいうところのスカラー)$mailtoに"xxx@xx.xx; yyy@yyy.yy; zzz@zzz.zz"といった形で整理したいと思います。
使ったことがないのですが多次元配列でやれるかなとも思ったのですが、name=\"to[$j]\"の部分をどう記述して、POSTされたデータをどう受ければいいのかが分かりません。
何をどう聞いていいのかも分からないので、うまく質問をまとめ切れていませんが、これで理解できた方お知恵をお貸しください。
お礼
ありがとうございます。 早速やってみたのですが、 実験で次のように3つ目を表示させてみたところ(チェック入れてます) $_POST["to"][2] これだと Parse error: syntax error, unexpected T_ENCAPSED_AND_WHITESPACE, expecting T_STRING or T_VARIABLE or T_NUM_STRING というエラーが出ました で、$_POST[to][2]にしてみたところ Array[2] となってしまいます。 どうすればいいのでしょうか。