我遇到了一个我觉得很困惑的问题。我有一个带有一个复选框的表单。如果选中复选框,我需要表单应用值1或0。
<input type="checkbox" name="admin">
那么PHP就是这样的:
$update_data['admin'] = isset($_POST['admin']) ? '1' : '0';
如果选中它,它会起作用。我不确定如何进入“关闭”状态。
答案 0 :(得分:1)
需要更改PHP代码
$update_data['admin'] = empty($_POST['admin']) ? '0' : '1';
isset()仅检查值是否设置,即Null或Not。在你的情况下,它设置为ZERO
另一方面,为空,检查两个值是否设置为null,如果其中任何一个为true,则值为零,然后返回true。
和HTML
<input type='checkbox' value ='1' name='admim'>
答案 1 :(得分:1)
如果提交的复选框没有值,则从$ _POST ['admin']检索时,其值为“on”。我猜你也可以做
$update_data['admin'] = ($_POST['admin'] === 'on') ? '1' : '0';
答案 2 :(得分:0)
检查是否使用isset
定义了某些内容与获取其值不同。试试这个:
<input type="checkbox" name="admin" value="checked_or_whatever_value_you_like">
if(isset($_POST['admin'])){
$update_data['admin'] = $_POST['admin'] == 'checked_or_whatever_value_you_like' ? '1' : '0';
}
答案 3 :(得分:0)
一切都应该按预期工作:)
只是为了确保提交的内容:
管理员
如果未选中复选框,则值(及其键)将不会传递给查询字符串。
所以,检查
If (isset($_POST['submit'])){
$update_data['admin'] = isset($_POST['admin']) ;
//actions if form has been submitted.
}
答案 4 :(得分:0)
它似乎与我合作,这是我的示例代码:
<form action="" method="POST">
<input type="checkbox" name="admin">
<input type="submit">
</form>
<?php
$check = isset($_POST['admin']) ? '1' : '0';
echo $check;
var_dump($check);
?>
当你选中复选框时会产生1个字符串(1)“1”,如果未选中则会产生0字符串(1)“0”。
答案 5 :(得分:0)
我在另一篇文章中找到了answer。用:
$update_data['admin'] = ($_POST['admin'] == 1) ? '1' : '0';