如何检查PHP中是否勾选了复选框


How to check if a checkbox is ticked in PHP

好的,所以基本上我有一个HTML复选框:

<input type="checkbox" name="mailinglist" />

此复选框位于用户注册表单上,用于确定他们是否要订阅邮件列表。我只想在PHP中以1或0(布尔值)的形式返回。正如你所看到的,我正在使用POST:

<form action="process-create.php" method="POST">

在我的PHP中,它收到了这样的帖子:

$mailinglist = $_POST['mailinglist'];

这一切看起来都很好。现在我想将它输入到数据库中(使用布尔值)。这是将其输入数据库的代码:

$data = array('username'=>$username, 'firstname'=>$firstname, 'lastname' => $lastname, 'mailing_list'=>$mailinglist, 'email'=>$email );
mysql_insert('users', $data);

即使我勾选了这个框,它在数据库中仍然显示0。正如你所看到的:

USERNAME       FIRSTNAME       LASTNAME       MAILING LIST       EMAIL
odixon         Oliver          Dixon          0                  *********

有什么建议吗?如果你想要更多的代码样本,我很乐意提供(如果有帮助的话)。

而不是

$mailinglist = $_POST['mailinglist'];

我相信你想使用:

$mailinglist = isset($_POST['mailinglist']);

只有选中复选框时,才会包含与该复选框关联的name。它的值是复选框的value(您已经省略了它)。

你能试试这个吗,

 <input type="checkbox" name="mailinglist" value="yes"/>
 <?php  if(isset($_POST["mailinglist"]) && $_POST["mailinglist"]=="yes"){
             echo "checkbox ticked";
       }
 ?>

在您的html页面中:

<input type="checkbox" name="mailinglist" value="1">

提交表格后,您可以使用进行检查

isset($_POST['mailinglist'])
or
if ($_POST['mailinglist'] == '1')...