我遇到了一个我觉得很困惑的问题。我有一个带有一个复选框的表单。如果复选框被选中,我需要表单应用 1 或 0 的值。
<input type="checkbox" name="admin">
然后是 PHP,像这样:
$update_data['admin'] = isset($_POST['admin']) ? '1' : '0';
如果它被选中,它会起作用。我不确定如何进入“关闭”状态。
PHP代码需要更改
$update_data['admin'] = empty($_POST['admin']) ? '0' : '1';
isset() 将仅检查该值是否已设置,即 Null 或 Not。在你的情况下,它设置为零
另一方面,检查两个值是否都设置为 null 并且如果它们中的任何一个为 true ,则值为零,则返回 true 。
并在 HTML
<input type='checkbox' value ='1' name='admim'>
当复选框提交时没有值,如果从 $_POST['admin'] 中检索,其值为“on”。我想你也可以
$update_data['admin'] = ($_POST['admin'] === 'on') ? '1' : '0';
我在另一篇文章中找到了答案。和:
$update_data['admin'] = ($_POST['admin'] == 1) ? '1' : '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';
}
一切都应该按预期工作:)
只是为了确保 for 已提交:
行政
如果未选中复选框,则值(及其键)不会传递给查询字符串。
所以,检查
If (isset($_POST['submit'])){
$update_data['admin'] = isset($_POST['admin']) ;
//actions if form has been submitted.
}
它似乎对我有用,这是我的示例代码:
<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”。