我在网页上有一个带有单选按钮和复选框的表单,我试图在提交表单时将数据插入数据库。当我提交表单时,字段保持不变(默认条目。所有其他条目都被插入,只有这两个条目给我提出了问题。
创建表:
CREATE TABLE users (
gender varchar(255) NOT NULL,
specialmem BOOL NOT NULL,
) ENGINE=InnoDB;
形式:
<div class="form-group">
<label for="sex">Gender:</label>
<input type="radio" name="gender" <?php if (isset($gender) && $gender=="female" ) echo "checked";?>
value="female">Female
<input type="radio" name="gender" <?php if (isset($gender) && $gender=="male" ) echo "checked";?>value="male">Male
</div>
<div class="form-group">
<label for="specialmem">Are you a Special member?</label>
<input type="checkbox" name="specialmem" class="form-control" id="specialmem" value="1">
<button type="submit" class="btn btn-default">Submit</button>
</div>
插入数据库:
if(isset($_POST['submitted'])) {
$gender= $_POST['gender'];
$specialmem= $_POST['specialmem'];
$sqlinsert = "INSERT INTO users (gender, specialmem) VALUES ('$gender','$specialmember')";
}
答案 0 :(得分:1)
用以下代码替换html代码,然后再试一次
<div class="form-group">
<label for="sex">Gender:</label>
<input type="radio" name="gender" value="female"
<?php if(isset($gender)) {
if($gender='female') {
echo 'selected';
}
} ?>
>Female
<input type="radio" name="gender" value="male"
<?php if(isset($gender)) {
if($gender='male') {
echo 'selected';
}
} ?>
>Male
</div>
<div class="form-group">
<label for="specialmem">Are you a Special member?</label>
<input type="checkbox" name="specialmem" value="1" class="form-control" id="specialmem" placeholder="">
<?php
if(isset($_POST['specialmem'])) {
if ($_POST['specialmem'] == '1') {
$specialmem = $_POST['specialmem'];
} else {
$specialmem=0;
}
}
?>
<button type="submit" name="submitted" class="btn btn-default">Submit</button>
</div>
答案 1 :(得分:1)
您使用的复选框表单将生成$ _POST字符串&#34; on&#34;如果选中:
$_POST = array(["specialmem"]=> "on")
但是,您的数据库是一个BOOLEAN。你需要为此做一个额外的步骤,例如:
if($_POST["specialmem"] == "on"){
$specialmem =1; // the value to insert
}
另外,您尝试插入数据库的变量被称为“$ specialmember&#39;”,应该是&#39; $ specialmem&#39;
您的性别单选按钮代码似乎没问题。它应该工作。