Html表单提交复选框-更改mysql表中的值



我有一个数据库,它是由一些字段是布尔值组成的,所以在我的html表单中,我使输入类型设置为复选框,我想使如果选中=" True",Uncheck = "false".
我该如何存档?到现在为止,如果我检查它们,我看到一个0,如果我不检查,我什么也看不到。我试过把和隐藏的领域和工作,但没有得到任何结果。

如果你需要代码或打印屏幕更好地理解问题,请告诉我。谢谢你。

这是复选框输入的默认行为:

  • 如果复选框被选中,则发送参数value的值
  • 如果未选中复选框,则不发送任何内容

所以,如果你有这样的东西:

<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" />

隐藏字段"my_checkboxes"将包含表单中所有复选框的名称。

然后,你可以取$_POST["my_checkboxes"]的值,拆分它的值(用","),然后循环遍历所有的复选框:

$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";
  }
}

如果你有一个带有未知数量复选框的动态表单,这个解决方案会很好。

张贴的东西为"my_checkbox" ($_POST['my_checkbox']),如果它被检查或不与不同的值将可能与JavaScript(但我不建议)。

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;

最新更新