PHP 備忘録 | メシのタネ

このエントリーをはてなブックマークに追加

【PHP】CheckboxのPOSTについて

 2012/11/22

気がついたらプログラムをやっていました。
初仕事はWebのアンケート。
項目の数が凄い多いし、チェックボックスだのなんだの入り乱れてて
ジャングルみたいなコードになってて、入りたくないコードになっていましたが
まぁそろそろ終わりが見えてきました。

イレギュラーな部分とかもあって、対応するのに苦労したけど勉強することも多かったです。

で、そんな中で、特になんでやねんこれって思ったのが
checkboxのvalueが出力されてこない事でした。
答えは、checkboxの中にtextがあったのに同じnameにしてたからです。


<form action="#" method="POST">
<input type="checkbox" name="hoge" value="moga" />hoge
<input type="checkbox" name="huga" value="hoga" />huga
<input type="checkbox" name="piyo" value="puyo" />puyo
//極端ですけど名前が一緒だったらダメみたい。
<input type="text" name="piyo" value="" />pyo
<inpu type="submit" value="送信" />
</form>

//こうやって書くことで、わざわざ別の名前にしなくても、配列でぶっとばしてくれます。
//調べてみたら二次元配列でもできるみたいだよ!
<form action="#" method="POST">
<input type="checkbox" name="hoge[]" value="moga" />hoge
<input type="checkbox" name="hoge[]" value="hoga" />huga
<input type="checkbox" name="hoge[]" value="puyo" />puyo
<input type="text" name="hoge[]" value="" />pyo
<inpu type="submit" value="送信" />
</form>

<form action="#" method="POST">
<?php
$abesi = ('moga','hoga','puyo');
for($i=0; $i < count($abesi); $i++)
{
echo "<input type="checkbox" name="hoge[$i][]" value="$abesi[$i]" />$[i];
}
?>
//もう一個[]を増やせば良いだけだね!シンタックス出たら適当に直してね!
<input type="submit" value="送信" />
</form>


とまぁ、こんなしょーもない事で30分くらい使ってしまいました。
皆さんは、正しいコードと冴えた頭で、困難を乗り切ってください。


このエントリーをはてなブックマークに追加

コメント

"【PHP】CheckboxのPOSTについて"
でメシのタネのおすすめを検索したよ!

プログラミング備忘録 | メシのタネ