

アンケートフォームを作成していますが、チェックボックスで複数項目を選択しても最後のひとつしか表示されずに困っています。
配列での処理にすれば良いという事なので自分なりにやってみたのですが、今度は「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で質問しましょう!
似たような質問が見つかりました
- JavaScript javascript作成してます。ラジオボタンで判定するコードを書いてます。 1 2023/07/18 11:03
- PHP PHPで画像の渡しが上手く行きません。 1 2023/02/02 09:39
- JavaScript ①入力フォーム→②確認表示画面→③送信完了画面のコードを書いているのです、 入力フォームから受け取っ 2 2022/05/10 16:45
- JavaScript 1日1回引けるJavaScriptおみくじについて 1 2022/12/12 22:28
- PHP 入力した部分を表示させたまま(保持)するにはどうすれば良いでしょうか? 1 2023/01/25 11:14
- JavaScript javascriptのちょっとした動作不良(原因は突き止めたのですが) 1 2023/06/15 19:58
- JavaScript 以前の質問だと、どの条件でも配列が表示されてしまいます。 1 2022/07/09 11:40
- JavaScript clear機能を失わずにファイルアップロード機能を作成したい 3 2023/06/10 16:12
- JavaScript セレクトボックスで配列を呼び出したい。 1 2022/07/08 20:14
- PHP PHPでユーザー情報を入力して簡易ログイン機能をつくってみたのですが 1 2023/05/29 08:51
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
String だと「 ByRef引数の型が...
-
$_SESSIONに二次元配列を使える...
-
$_POSTを一括してサニタイズし...
-
URLの文字列からパラメータ部分...
-
配列をループでたくさん宣言し...
-
smartyで配列の中の同数値の数...
-
file_existsでファイル名の部分...
-
PHPのカッコ[ ]の使い方について
-
一覧から選んだ動画を、順番に...
-
PHPにてクラスを配列にすること...
-
DB抽出結果を配列のままフォ...
-
unset使用時の利点
-
array_values?
-
usort のユーザー定義比較関数...
-
PHPでの簡易ビンゴゲームでの疑...
-
このwhile文(?)の意味が理解で...
-
文字列連結パターンが多数ある場合
-
配列一致(要素順番は違うが内容...
-
ファイル名を確認してそのファ...
-
GOTO命令のようなことをPHPで
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
String だと「 ByRef引数の型が...
-
配列をループでたくさん宣言し...
-
$_SESSIONに二次元配列を使える...
-
チェックボックス複数選択 mys...
-
配列一致(要素順番は違うが内容...
-
file_existsでファイル名の部分...
-
Smartyのテンプレートからjavas...
-
ネストが深い時のforeachはどう...
-
foreachのなかで次のキーを参照...
-
漢字のソートについて
-
PHPにてクラスを配列にすること...
-
ExcelVBAのチェックボックスに...
-
URLのサブドメインとドメイン部...
-
PHPのカッコ[ ]の使い方について
-
配列を回すとき、最後の要素だ...
-
PHPのPOSTでの半角スペース
-
PHPのループ数限界値について
-
$_POSTを一括してサニタイズし...
-
postgresql関数をつかったレコ...
-
ファイルから指定行数分だけ読...
おすすめ情報