カテゴリはPHPにしたけど、PHPに限らず。

例えば、「メルマガを配信する/しない」の設定をチェックボックスでするとすると、こんな感じになる。
メールアドレス: <input type="text" name="email" /><br />
<input type="checkbox" name="mailmag" value="1" /> メルマガを受信する


だけどこれだとフォーム送信した時に、チェックが入っている場合は値が送られてくるが、チェックがはずれている場合は値自体が無くなってしまう。
イメージ的にはこんな感じ。
・チェックが入ってる
http://example.com/form.php?email=test@example.com&mailmag=1

・チェックがはずれてる
http://example.com/form.php?email=test@example.com&hoge=piyo


これだと、例えばデータを編集するフォームの場合、データが送信されず、その項目は変更されない、なんてことになって不都合である。
チェックがはずれている場合は↓こうなって欲しい。
http://example.com/form.php?email=test@example.com&hoge=piyo&mailmag=0


これは、こちらで紹介されている方法で解決しました\(^o^)/
実際のcheckboxの前にhiddenで同じname属性で書いておきます。


今回の場合だと、こうします。
メールアドレス: <input type="text" name="email" /><br />
<input type="hidden" name="mailmag" value="0" />
<input type="checkbox" name="mailmag" value="1" /> メルマガを受信する