2014-06-13 57 views
0

我有一个是由一些字段都是布尔型,所以在我的HTML表单我所做的输入类型设置为复选框,我想打,如果检查由数据库=“ True“, uncheck =”false“。
我如何存档? 现在,如果我检查他们,我看到一个0,如果我不检查我什么也没有看到。 我试图把隐藏的领域和工作,但没有得到任何结果。HTML表单提交复选框 - 改变MySQL表值

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

+0

[使用HTML复选框把1或0到一个MySQL表]的可能重复(http://stackoverflow.com/questions/3675900/using-an-html-checkbox-to-put-1-or- 0到-A-mysql的表) –

回答

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

隐藏字段“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"; 
    } 
} 

这种解决办法将是如果您的动态表单的复选框数量未知,那么很好。使用JavaScript(但我不推荐使用它),如果选中或不使用不同的值,则会将某些内容写为“my_checkbox”($ _POST ['my_checkbox'])。

+0

感谢优秀的解释,由于某种原因,我没有看到回音任何地方,但我经历的代码试图弄清楚什么是错的,但现在我得到的逻辑。谢谢 ! – user3736204

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;