PHPで同一名パラメータを送信する方法
PHPをちょいとやる機会があったのでメモ。(PHPに関しては超初心者なのです)
次のような同一名チェックボックスがある場合、サブミットしてPHPで配列として受け取るのにちょっと悩んだ。
<input name="hoge" type="checkbox" value="1"> <input name="hoge" type="checkbox" value="2"> <input name="hoge" type="checkbox" value="3">
普段Javaやってると、こんなデータをサブミットしても、HttpServletRequestで普通にとれちゃう。
String[] hoge1 = request.getParameterValues("hoge");
PHPの場合、どうもそのまま配列で取れないみたいで、取ったとしても最後の「3」しか入ってなかった。
んで、PHPではこんな場合どうするかというと、inputタグのnameに[]をつけておけば解決するらしいとのこと。
<input name="hoge[]" type="checkbox" value="1"> <input name="hoge[]" type="checkbox" value="2"> <input name="hoge[]" type="checkbox" value="3">
受けのPHP側ではこんな感じでとれます。
$hoges = $_POST['hoge']; foreach($hoges as $hoge) { echo "$hoge <br/>"; }