[PHP] checkboxの値を配列で受け取る

2019-03-13PHP

チェックボックスを複数選択できて、選択した複数の値をまとめて 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 はフィルタリングも何もしない。)



以上

Posted by Agopeanuts