どのように私はPHPにHTMLからチェックされていない場合でも、すべてのチェックボックスの変数のですか?
質問
私はPHPがチェックチェックボックスの値のみを返すように見えることに気づきました。私がチェックし、チェックボックスの値だけでなく、チェックボックスのリストを表示したいと思います。未チェックボックスの変数を検出する方法はありますか?
私は設定を更新することができるようにしたいので、私は尋ねました。例えば、私はすでに確認されているいくつかのオプションを持っていますが、ユーザーがオプションをオフにすることを決定した場合、私はチェック値はので、私は無効にするオプションを更新できることを知っておく必要があります。
解決
私はこの問題に自分自身を実行しました。私は、同じ名前の重複hidden
フィールドを追加することによって、それを解決しました。ブラウザがこの情報を送信すると、2番目のフィールドは、最初に上書きされます(そうhidden
フィールドが最初に来ることを確認してください)。
<input type="hidden" name="foo" value="">
<input type="checkbox" name="foo" value="bar">
checkbox
がチェックされていない場合、あなたが得る:
$_REQUEST[ 'foo' ] == ""
checkbox
がチェックされている場合は、あなたが得る:
$_REQUEST[ 'foo' ] == "bar"
他のヒント
これは、PHPで純粋に行うことができるものではありません。
彼らがチェックされている場合、あなたはまた、未確認のチェックボックスについての情報を送信したい場合は、ブラウザでのみ、チェックボックスに関する情報を送信する、フォームで隠しフィールドを追加し、それらを管理するためにJavaScriptを使用する必要があります。
私はこの問題全体に自分自身をつまずいたと私はPOSTデータである再確認するだけで、その後未チェックに、データベース内のすべての値を更新することにより、それをソートし、これは私のために正常に動作しますが、お茶の全員のカップではないかもしれませんます。
純粋なPHPの実装が可能に思えません、あなたががjQueryの/ AJAXを使用して試すことができます。
あなたがチェックしたい3つのチェックボックスを持っていると仮定し、update_settingsは、第一引数と第二1(アクティブかどうか)などbool値としてチェックボックスの名前を取るあなたの関数の名前です。
次のスニペットを取ります:
$checkboxes = array("checkbox1", "checkbox2", "checkbox3");
foreach($checkboxes as $checkbox){
$checked = isset($_POST[$checkbox]);
update_settings($checkbox, $checked);
}
Althouth <のhref = "https://stackoverflow.com/questions/1944019/how-do-i-get-all-checkbox-variables-even-if-not-checked-from-html-to-php / 1944065#1944065" >動作するように起こっているのピーター・コバチの解決策、私はあなたがすでにISSETを使用して、変数を確認することができますので、それは実用的ではないと思う。