我目前正在使用表单中的复选框,并希望将复选框值保存到int类型的数据库列中。实现这一目标的最有效方法是什么。我已经尝试将变量转换为(int)
,但这对我来说还没有做任何事情。
HTML: <input name='active' id='active' ng-model='formData.active' ng-init='formData.active=true' type="checkbox"> Active </br>
PHP:
$active = (int) $_POST['active'];
echo $active;
echo $_POST['active'];
Output:
0
true
注意:我试图在没有糟糕的if语句或开关的情况下实现它。
答案 0 :(得分:0)
只有选中复选框,才会设置复选框的$_POST
变量,因此您可以使用以下内容:
$active = isset($_POST['active']) ? 1 : 0;
我怀疑你得到字符串“true”而不是布尔“true”,在这种情况下你可以使用类似的结构:
$active = $_POST['active'] === "true" ? 1 : 0;
答案 1 :(得分:0)
答案 2 :(得分:0)
在输入标记
中添加值属性<input name='active' value='1' ...>
现在它应该按照你需要的方式工作。
答案 3 :(得分:0)
在PHP手册中查看以下代码:
filter_var('FALSE', FILTER_VALIDATE_BOOLEAN, array('flags' => FILTER_NULL_ON_FAILURE)
答案 4 :(得分:0)
首先,你在HTML中的输入是&#34;粘性&#34;在PHP中,你测试&#34;活跃&#34;。 但无论如何,请在测试后尝试使用PHP:
if (isset($_POST['sticky']) and ($_POST['sticky']=='on')) $active=1;
else $active=0;