技術ブログblog

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属性を配列で使用する時がよくあります。
この場合、素直に上記の方法ではうまくいきません。
その時の対処法について後日改めて説明したいと思います。

お問い合わせはこちら

web・システムに関するお悩みご相談、お見積もり、わからないことがございましたらいつでも受付いたします。 専門用語は極力避け、できるだけわかりやすくお伝えいたします。 お気軽にお問い合わせください。

お問い合わせ