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

时间:2013-11-21 07:05:59

标签: php database checkbox boolean

好的,基本上我有一个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                  *********

有什么建议吗?如果你想要更多的代码示例,我很乐意给他们(如果它会有所帮助)。

3 个答案:

答案 0 :(得分:1)

而不是

$mailinglist = $_POST['mailinglist'];

我相信你想用:

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

仅当选中该复选框时,才会包含与该复选框关联的name。它的值是复选框的value(你省略了)。

答案 1 :(得分:0)

你能试试吗,

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

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

答案 2 :(得分:0)

在你的html页面中:

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

提交表格后,您可以查看:

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