[PHP] checkboxの値を配列で受け取る
チェックボックスを複数選択できて、選択した複数の値をまとめて PHP で受け取る方法
チェックボックスの値を配列で送信
name のとこを 配列[] で書く
<form method="post" action="">
<input type="checkbox" name="chk[]" value="A">選択肢 A
<input type="checkbox" name="chk[]" value="B">選択肢 B
<input type="checkbox" name="chk[]" value="C">選択肢 C
<button type="submit" name="btn">送信</button>
</form>
PHP で配列を受け取る
filter_input()
を使った書き方
$chk = filter_input(INPUT_POST, 'chk', FILTER_DEFAULT, FILTER_REQUIRE_ARRAY);
/* 選択肢 A, 選択肢 Cにチェックして送信 */
var_dump($chk);
// array(2) { [0]=> string(1) "A" [1]=> string(1) "C" }
if (!empty($chk)) {
foreach($chk as $key => $val){
echo "key:".$key." val:".$val."<br />";
}
}
// key:0 val:A
// key:1 val:C
filter_input()
の第 4 引数に FILTER_REQUIRE_ARRAY
を指定する
第 4 引数を指定するため、第 3 引数に FILTER_DEFAULT
を書く。
(第 4 引数が不必要な場合(通常)は、第 3 引数を省略することができる。
省略すると、デフォルトの FILTER_DEFAULT
が適用される。 FILTER_DEFAULT
はフィルタリングも何もしない。)
以上