

アンケートフォームを作成していますが、チェックボックスで複数項目を選択しても最後のひとつしか表示されずに困っています。
配列での処理にすれば良いという事なので自分なりにやってみたのですが、今度は「Array」と表示されてしまい、具体的にどうしたらいいのか分かりません。
※html側
<input type="checkbox" name="cat[]" value="abc">
<input type="checkbox" name="cat[]" value="def">
※php側
<FORM action="<? echo $script; ?>" method="POST">
<? echo $err_message; ?>
<?php
foreach($_POST as $key=>$var) {
$key = strtr($key, $string_from, $string_to);
if(get_magic_quotes_gpc()) $var = stripslashes($var);
$var = htmlspecialchars($var);
print("項目:".$key."選択したのは".$var);
?>
<INPUT type="hidden" name="<?= $key ?>" value="<?= $var ?>">
<?php
print("です。\n");
}
?>
となっています。
また、選択内容をメール送信するようになっており、
foreach($_POST as $key=>$var) {
$key = strtr($key, $string_from, $string_to);
if(get_magic_quotes_gpc()) $var = stripslashes($var);
if($var == "eweb_submit") ;
else $rebody.="[".$key."] ".$var."\n";
です。
複数項目をまとめて処理しているようで、どうしたらいいのか分かりません。ちなみに、http://www.eweb-design.com/のフリーのメールフォームを使っています。
No.3
- 回答日時:
下の間違い
var_dump( $a ) → var_dump( is_array( $a ) );
var_dump( $_POST[ 'cat' ] ) → var_dump( is_array( $_POST[ 'cat' ] ) );
すみません.
No.2
- 回答日時:
taketan_mydns_jpさんの説明をちゃんと読みましたか?
print_r($_POST)すればすぐわかるはずなのですが,あなたが自分でおっしゃったように,チェックボックスの変数名をcatとして,そのcatを配列として扱うようにプログラミングしたわけです.
ということは,
$_POST
という変数はもとより配列ですが,その配列のメンバである,
$_POST[ 'cat' ]
も配列になるということです.つまり,
foreach( $_POST[ 'cat' ] as $catk => $catv ){
}
というふうにループを回せば,その配列の中身を取り出すことができます.
ただし,あなたのプログラミングのままでは,catチェックボックス群に一つもチェックを入れなかった場合は$_POST['cat']は配列どころか値が入りません.そのあたりをよく考えてください.
ちなみにある値が配列かどうかは is_array()という関数で判断できます.
$a = array();
var_dump( $a );
結果:
bool(true)
ということは,チェックを入れたときは
var_dump( $_POST[ 'cat' ] );
の結果は・・・・・?.
知識不足ですみませんでした。
>catチェックボックス群に一つもチェックを入れなかった場合は$_POST['cat']は配列どころか値が入りません.そのあたりをよく考えてください.
がいまいち分かっていなかったみたいです。
教えていただいたのをヒントにやってみたところ、希望通りのができました。
ありがとうございました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
phpのheader("Location:#pos")...
-
PHP8でWarning:Undefined varia...
-
フォームで戻った際に入力済み...
-
csvファイルについて教えて下さ...
-
セッション関数を使わずにファ...
-
composerをインストールしたい...
-
SplFileObject を利用したとき...
-
PHPSpreadsheetによる書き出し...
-
phpの問い合わせフォームを作っ...
-
marginの値でマイナス値を設定...
-
submitで思うようにページが遷...
-
HTML PHP ラジオボタンのイベント
-
php でqiitaのサイトにあったフ...
-
PHPの勉強してます。 配列のと...
-
BASIC認証のフォームをデザイン...
-
アップロードファイルを表示す...
-
複数のパソコンの中の1つのパソ...
-
返信機能のツリー構造の深さを...
-
PHPについて。
-
PHPからCSVをアップロード後、m...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
file_existsでファイル名の部分...
-
配列をループでたくさん宣言し...
-
PHPのカッコ[ ]の使い方について
-
String だと「 ByRef引数の型が...
-
foreachのなかで次のキーを参照...
-
$_SESSIONに二次元配列を使える...
-
PHP掲示板で新着順に表示させた...
-
チェックボックス複数選択 mys...
-
$_POSTを一括してサニタイズし...
-
Smartyでtplファイルから配列を...
-
ネストが深い時のforeachはどう...
-
配列をmysqlに保存
-
プルダウンメニューでCSVデータ...
-
postgresql関数をつかったレコ...
-
禁止ワード設定
-
sortableで並べ替えてDBに保...
-
ファイルから指定行数分だけ読...
-
配列を分解したいのですが
-
リストビュー 条件により表示
-
配列一致(要素順番は違うが内容...
おすすめ情報