我的表格中有这个复选框:
<input type="checkbox" name="private" id="private" />
当我提交表单时,复选框始终会返回,即使我没有检查它。
echo $_POST['private'] //result is always returns on
$private = isset($_POST['private']) ? 1 : 0; //result is 1 always
我做错了什么?
答案 0 :(得分:0)
isset($_POST['private'])
将始终返回true,因为$_POST['private']
存在。
为复选框<input type="checkbox" name="private" id="private" value="1" />
添加值并使用$private = $_POST['private'] ? 1 : 0;
或者如果您使用的是PHP 7+ $private = $_POST['private'] ?? 0;
答案 1 :(得分:0)
为输入提供一个值并检查:
<input type="checkbox" name="private" id="private" value="1"/>
$private = isset($_POST['private']) && $_POST['private'] == 1 ? 1 : 0;
答案 2 :(得分:0)
当您提交HTML表单时,$_POST['input_name']
for checkbox元素始终设置,因此isset($_POST['private'])
始终返回true。
您应该直接检查复选框elemenet的值,如下所示:
$private = $_POST['private'];
这将为您提供所需的结果,如果选中该复选框,$private
将等于1,否则为0.