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

Posted

技术标签:

【中文标题】使用 HTML 复选框将 1 或 0 放入 MySQL 表中【英文标题】:Using an HTML checkbox to put 1 or 0 into a MySQL table 【发布时间】:2011-04-10 04:58:18 【问题描述】:

我在表单中使用一个简单的 html 复选框,在 mysql 表中名为“subcheck”的字段中放置一个 1 表示选中,一个 0 表示未选中。

复选框是否默认为 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`)
)

【问题讨论】:

请考虑在插入数据库之前清理您的输入 添加到 irishbuzz,按照你提出的方式来找麻烦。谷歌“小鲍比桌”。 【参考方案1】:

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

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

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

这样,你不需要检查服务器端是否设置了文本框;)

【讨论】:

不错的解决方案,从没想过那样使用它。使用它的人应该确保在源中的复选框之前保留隐藏的输入类型。 这很好用。尚未完全测试,但到目前为止还不错。 不幸的是,在 ColdFusion 中,如果选中复选框(“[0, 1]”),这将发布一个数组 天才!简直是天才!【参考方案2】:

可以这样使用

在表单页面上

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

在处理页面上

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

【讨论】:

【参考方案3】:

你应该尝试 if 语句或 三元 条件语句.. if(isset($_POST['subcheck'])) $子检查 = 1; 别的 $subcheck = 0;

或者你可以试试 $subcheck = (isset($_POST['subcheck'])) ? 1:0;

在数据库中你应该使用枚举类型subcheck

【讨论】:

这不起作用,因为如果未将选中的属性应用于复选框,则不会发送值。【参考方案4】:

如果未选中 Checkbox,则根本不会提交 $subcheck。

php 中你应该写:

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

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

【讨论】:

【参考方案5】:

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

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

【讨论】:

以上是关于使用 HTML 复选框将 1 或 0 放入 MySQL 表中的主要内容,如果未能解决你的问题,请参考以下文章

是否可以将图像放入输入类型 =“复选框”?

如何使用复选框在 mySQL 中输入 true (1) 或 false (0) 并显示为在 php / html 表单中选中?

select2 多选框仅将最后选择的值放入数组

用jquery把复选框checkbox选中的值放入input框中

将复选框值放入 M​​s Access 中的数字字段

将QCheckBox的状态保存在文件中,程序重启时加载状态