チェックボックスがオフの場合、送信されないため、チェックされていない場合に値を0に設定しても、効果はありません。常にNULLが返されます。
これを簡単に修正する方法は2つあります。
1)PHPパラメータのNULLは、チェックボックスがオフになっていることを意味すると想定します。チェックボックスがページに常に存在するとは限らない場合、これは問題になる可能性があります。その音によって、チェックボックスの数は可変であるため、これはおそらく機能しません。
2)チェックボックスと同じ名前の非表示の入力を値0 BEFOREで追加します チェックボックス。チェックボックスがオフの場合は非表示フィールドの値が使用され、チェックボックスがオンの場合はチェックボックスの値が使用されます。
<input type="hidden" name="checkbox_1" value="0">
<input type="checkbox" name="checkbox_1" value="1">
注:名前が配列形式の場合(つまり、角かっこが含まれている場合)、非表示のフィールドでも配列の数が増えるため、これは機能しません。