好的,基本上我有一个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 *********
有什么建议吗?如果你想要更多的代码示例,我很乐意给他们(如果它会有所帮助)。
答案 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')...