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

Joh*_*ohn 14 html php mysql

我在一个表单中使用一个简单的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>
Run Code Online (Sandbox Code Playgroud)

在文件中,表单转到:

$subcheck = $_POST['subcheck'];

mysql_query("INSERT INTO submission VALUES (NULL, '$uid', '$title', '$slug', '$cleanurl', '$displayurl', NULL, '$subcheck')");
Run Code Online (Sandbox Code Playgroud)

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`)
)
Run Code Online (Sandbox Code Playgroud)

Tom*_*duy 34

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

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

//The checkbox
<input type="checkbox" name="subcheck" value="1" /> 
Run Code Online (Sandbox Code Playgroud)

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

  • 很好的解决方案,从未想过用这种方式.使用它的人应该确保在源中的复选框之前保留隐藏的输入类型. (5认同)

Nev*_*kes 30

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

$subcheck = (isset($_POST['subcheck'])) ? 1 : 0;
Run Code Online (Sandbox Code Playgroud)