将数据从单选按钮和复选框发布到数据库中

时间:2016-10-04 20:46:51

标签: php html forms

我在网页上有一个带有单选按钮和复选框的表单,我试图在提交表单时将数据插入数据库。当我提交表单时,字段保持不变(默认条目。所有其他条目都被插入,只有这两个条目给我提出了问题。

创建表:

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')";
}

2 个答案:

答案 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;

您的性别单选按钮代码似乎没问题。它应该工作。