アンケートフォームを作成していますが、チェックボックスで複数項目を選択しても最後のひとつしか表示されずに困っています。
配列での処理にすれば良いという事なので自分なりにやってみたのですが、今度は「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ランキング
-
foreachのなかで次のキーを参照...
-
PHP 多次元配列変数のデータ受...
-
CSVデータのn番目だけの値を取...
-
$_SESSIONに二次元配列を使える...
-
unset使用時の利点
-
配列の書き方
-
String だと「 ByRef引数の型が...
-
multiple属性のPOSTを配列で受...
-
smartyのforeachの使い方
-
スカラーのベクトル微分
-
forとかで連番の変数を一気に格...
-
3つの連想配列を交互に代入し...
-
While文を使って配列の中身を全...
-
多次元配列をソートする綺麗な...
-
CSVデータの行数カウントをした...
-
プルダウンメニューにDBの内容...
-
多次元配列の一次元目の最大値...
-
ログファイルが一定行数を超え...
-
添え字が全て文字列のPHPの多次...
-
ヒアドキュメントの中のfor文
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
配列をループでたくさん宣言し...
-
String だと「 ByRef引数の型が...
-
file_existsでファイル名の部分...
-
foreachのなかで次のキーを参照...
-
$_SESSIONに二次元配列を使える...
-
PHPのカッコ[ ]の使い方について
-
$_SESSIONについて教えて下さい。
-
配列を回すとき、最後の要素だ...
-
ネストが深い時のforeachはどう...
-
配列一致(要素順番は違うが内容...
-
PHPにてクラスを配列にすること...
-
配列の値の更新方法について
-
postgresql関数をつかったレコ...
-
PHPで配列をPOSTデータで送った...
-
PHP 多次元配列変数のデータ受...
-
漢字のソートについて
-
チェックボックスが複数選択で...
-
$_POSTを一括してサニタイズし...
-
smarty 同じ要素内で改行
-
配列のbindValue方法について
おすすめ情報