0

我遇到了一个我觉得很困惑的问题。我有一个带有一个复选框的表单。如果复选框被选中,我需要表单应用 1 或 0 的值。

<input type="checkbox" name="admin">

然后是 PHP,像这样:

$update_data['admin'] = isset($_POST['admin']) ? '1' : '0';

如果它被选中,它会起作用。我不确定如何进入“关闭”状态。

4

6 回答 6

1

PHP代码需要更改

$update_data['admin'] = empty($_POST['admin']) ? '0' : '1';

isset() 将仅检查该值是否已设置,即 Null 或 Not。在你的情况下,它设置为零

另一方面,检查两个值是否都设置为 null 并且如果它们中的任何一个为 true ,则值为零,则返回 true 。

并在 HTML

<input type='checkbox' value ='1' name='admim'>
于 2013-02-20T05:53:31.427 回答
1

当复选框提交时没有值,如果从 $_POST['admin'] 中检索,其值为“on”。我想你也可以

$update_data['admin'] = ($_POST['admin'] === 'on') ? '1' : '0';
于 2013-02-20T05:56:36.243 回答
0

我在另一篇文章中找到了答案。和:

$update_data['admin'] = ($_POST['admin'] == 1) ? '1' : '0';
于 2013-02-20T06:25:17.470 回答
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';
 }
于 2013-02-20T05:51:41.910 回答
0

一切都应该按预期工作:)

只是为了确保 for 已提交:

行政

如果未选中复选框,则值(及其键)不会传递给查询字符串。

所以,检查

If (isset($_POST['submit'])){
  $update_data['admin'] = isset($_POST['admin']) ;
  //actions if form has been submitted.
}
于 2013-02-20T05:57:17.947 回答
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”。

于 2013-02-20T05:59:05.297 回答