【问题标题】:Using an HTML checkbox to put 1 or 0 into a MySQL table使用 HTML 复选框将 1 或 0 放入 MySQL 表中
【发布时间】: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,按照你提出的方式来找麻烦。谷歌“小鲍比桌”。

标签: php mysql html


【解决方案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;
      

      【讨论】:

        猜你喜欢
        • 2014-04-17
        • 2014-09-27
        • 2012-12-10
        • 2016-06-09
        • 2018-07-03
        • 2015-07-19
        • 2017-09-28
        • 2017-12-05
        相关资源
        最近更新 更多