使用HTML复选框将1或0放入MySQL表中

时间:2010-09-09 11:01:32

标签: php mysql html

我在一个表单中使用一个简单的HTML复选框,在MySQL表中的一个名为“subcheck”的字段中将1表示为checked,将0表示为unchecked。

“已选中”复选框默认为1,未选中则为0吗?如果没有,我该如何给它这些价值?

形式:

<div class="subcheck"><INPUT TYPE=CHECKBOX NAME="subcheck">Click here to receive free money in the mail.<P></div>

在表格中的文件:

$subcheck = $_POST['subcheck'];

mysql_query("INSERT INTO submission VALUES (NULL, '$uid', '$title', '$slug', '$cleanurl', '$displayurl', NULL, '$subcheck')");

MySQL表:

`submission` (
  `submissionid` int(11) unsigned NOT NULL auto_increment,
  `loginid` int(11) NOT NULL,
  `title` varchar(1000) NOT NULL,
  `slug` varchar(1000) NOT NULL,
  `url` varchar(1000) NOT NULL,
  `displayurl` varchar(1000) NOT NULL,
  `datesubmitted` timestamp NOT NULL default CURRENT_TIMESTAMP,
  `subcheck` tinyint(1) NOT NULL,
  PRIMARY KEY  (`submissionid`)
)

5 个答案:

答案 0 :(得分:32)

为了确保始终发送1或0,您可以在html中插入隐藏了与name复选框相同的输入:

//The input hidden
<input type="hidden" name="subcheck" value="0" />

//The checkbox
<input type="checkbox" name="subcheck" value="1" /> 

这样,如果设置了文本框,则无需在服务器端签入;)

答案 1 :(得分:30)

如果未选中该复选框,则不会向服务器发送任何内容。相反,您可以使用以下内容提供默认值:

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

答案 2 :(得分:1)

如果取消选中Checkbox,则根本不会提交$ uncheck。

在PHP中你应该写:

if !(isset($_POST['subcheck']))
  $subcheck = 0;

mysql_query("INSERT INTO submission VALUES (NULL, '$uid', '$title', '$slug', '$cleanurl', '$displayurl', NULL, '$subcheck')");

答案 3 :(得分:0)

你应该尝试if语句或三元条件语句.. 如果(isset($ _ POST [ 'subcheck'])) $ subcheck = 1; 其他 $ subcheck = 0;

你可以尝试 $ subcheck =(isset($ _ POST ['subcheck']))? 1:0;

并且在数据库中你应该使用枚举类型子检查

答案 4 :(得分:0)

这可以使用如下

在表单页面

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

处理页面

    $status = (isset($_REQUEST['status']));
    if ($status == 1 )
      {
        $status = 1;
      }
    else
     {
       $status = 0;
     }
   echo $status;