チェックされているチェックボックスのみが $_POST に入れられています。チェックされたものは $_POST に「true」の値があり、チェックされていないものは値が「false」になるようにしたいと思います。とにかくこれを行う方法はありますか、または POST リクエストには常にチェックされたチェックボックスに関する情報のみが含まれますか?
私が考えることができる唯一のことは、隠しフォームフィールドを使用し、チェックボックスでそれらを操作することです。
あなたが使用することができます
<input type="checkbox" name="myCheckbox" value="true" />
<input type="hidden" name="myCheckbox" value="false" />
次に、サーバーで入力を解析します。false
またはのいずれかを取得します。true false
前者はにマップされfalse
、後者はにマップされますtrue
チェックされていないチェックボックスとチェックされていないチェックボックスの値の転記を参照してください。
同名の隠しフィールドを追加することで可能です。
サーバー側では、投稿データに設定されていない人はチェックされていないと想定できます。変数が設定されているかどうかを確認してください。
$_POST['a_checkbox'] = (isset($_POST['a_checkbox'])) ? 1 : 0;
およびtrue
、false
またはデータベースが必要です。
あなたはあなたのphpから行うことができます:
if(isset($_POST['checkbox'])||$_POST['checkbox']!="yes"){
//other code here
}
または、送信されていないチェックボックスの値を送信する前に、隠し入力を追加するJavaScriptを使用できます
ブラウザ依存なので無理です。
投稿されているかどうかを確認するには、
<?php
if (isset($_POST['checkbox1']))
{
// it's posted
}
または使用!
:
<?php
if (!isset($_POST['checkbox1']))
{
// it's NOT posted
}
チェックされたチェックボックスのコンテンツのみが含まれます。それ以外の場合は、変数/配列を好きなように配線するフォームヘルパーまたは入力フィルターを使用して、それをエミュレートする必要があります。
このような機能には、フォームごとに使用するすべてのチェックボックスが必要であり、検出されたものを true に設定し、検出されなかったものを false のままにすることができます。