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

时间:2014-06-13 23:15:26

标签: php html mysql

我有一个数据库,由一些字段组成的布尔值,所以在我的html表单中我将输入类型设置为复选框,我想制作如果选中=" True",  uncheck =" false"。
    我怎么能归档那个?       到现在如果我检查他们我看到0,如果我不检查我什么也看不见。          我试图放置并隐藏字段并使用它但没有得到任何结果。

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

2 个答案:

答案 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)

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

  • 发布参数&#34;值&#34;的值如果选中该复选框
  • 如果未选中复选框,则不发布任何内容

所以,如果你有类似的东西:

<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(但我不推荐)。