[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