我有一个数据库,由一些字段组成的布尔值,所以在我的html表单中我将输入类型设置为复选框,我想制作如果选中=" True",
uncheck =" false"。
我怎么能归档那个?
到现在如果我检查他们我看到0,如果我不检查我什么也看不见。
我试图放置并隐藏字段并使用它但没有得到任何结果。
如果您需要代码或打印屏幕来更好地理解问题,请告诉我。 谢谢。
答案 0 :(得分:1)
HTML复选框如果选中它们则返回一个值,如果未选中则返回任何值。所以使用isset()
HTML:
<input type="checkbox" value="1" name="chk1" />Label 1
<input type="checkbox" value="1" name="chk2" />Label 2
PHP
$chk1 = (isset($_POST['chk1']))? true : false;
$chk2 = (isset($_POST['chk2']))? true : false;
答案 1 :(得分:1)
这是复选框输入的默认行为:
所以,如果你有类似的东西:
<input type="checkbox" value="TRUE" name="my_checkbox" />
在PHP中,您可以执行以下操作:
if (isset($_POST["my_checkbox"])) {
echo "checkbox is checked";
} else {
echo "checkbox not checked";
}
如果您希望绝对发布内容,即使未选中复选框,正如您所说,您可以使用这样的隐藏字段:
<input type="checkbox" value="TRUE" name="my_checkbox_1" />
<input type="hidden" value="my_checkbox_1,my_checkbox_2,my_checkbox_3" name="my_checkboxes" />
隐藏字段&#34; my_checkboxes&#34;将保留表单中所有复选框的所有名称。
然后,您可以获取$ _POST [&#34; my_checkboxes&#34;]的值,拆分它的值(使用&#34;,&#34;),然后遍历所有复选框:< / p>
$checkboxes = explode(",", $_POST['my_checkboxes']);
foreach($checkboxes as $checkbox) {
$checkbox_value = $_POST[$checkbox];
if (isset($checkbox_value)) {
echo "checkbox " . $checkbox . " was checked";
} else {
echo "checkbox " . $checkbox . "wasn't check";
}
}
如果您的动态表单具有未知数量的复选框,那么该解决方案会很好。
将某些内容发布为&#34; my_checkbox&#34; ($ _POST [&#39; my_checkbox&#39;])如果选中或不使用不同的值,则可以使用JavaScript(但我不推荐)。