使用 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 表单中选中?