PHPでチェックボックスにチェックなしの対応方法
久しぶりの更新です(^^)
今回は技術的なネタをご紹介します。
Webプログラマーであれば、PHPでユーザー情報の登録フォームなどを作ることがよくあると思います。
その時に、チェックボックスを使用する時に、チェックボックスにチェックが付いていなくても、 値を取得したい場合があると思います。
私の場合は、チェックしていない時でも値を取得したい場合の方が多く、 いつもその場限りの対処をしているので、イマイチスマートなやり方が分かりませんでしたが、 最近良さそうなやり方を見つけましたので、ご紹介します。
【やり方】
<input type="hidden" name="chkItem1" value="0" /> <input type="checkbox" name="chkItem1" value="1" />チェックアイテム1 <input type="hidden" name="chkItem2" value="0" /> <input type="checkbox" name="chkItem2" value="2" />チェックアイテム2 <input type="hidden" name="chkItem3" value="0" /> <input type="checkbox" name="chkItem3" value="3" />チェックアイテム3 <input type="hidden" name="chkItem4" value="0" /> <input type="checkbox" name="chkItem4" value="4" />チェックアイテム4
hiddenをチェックボックスと同じnameで作成するだけです!!
このようにすると、チェックボックスにチェックが入っている時は、チェックボックスの値。
チェックが無い時は同じname属性のhiddenの値がPOSTされてきます。
たったこれだけです(^^v)
すごくないですか!?
一つ注意する点があります。
それは、hiddenをチェックボックスの前に記述する事です。
チェックボックスの後にhiddenを書いた場合、正常にPHP側でデータを取得できませんでした。
※確か出来なかったかと思います・・・ 間違ってたらすみませんm(__)m
最後に、実は私はチェックボックスを利用する時は、
チェックボックスのname属性を配列で使用する時がよくあります。
この場合、素直に上記の方法ではうまくいきません。
その時の対処法について後日改めて説明したいと思います。