我正在做一个表格,其中我必须将复选框btn组中的几个值插入我的dB到不同的列中。我还必须插入两个不同的值,具体取决于是否检查了btn。
我通过以下方式使其工作,但是还有另一种方式使它变得更简单吗?这是很多问题:)。
谢谢你的时间。
最好的祝福!
NM



<?php
if(isset($_POST["submit"])){

// Create connection
include ('connection.php');

if(isset($_POST['fixvalue']) && ($_POST['fixvalue'] == 0)) {
    $fixvalue= "fixvalue";
} else {
    $fixvalue= 0;
};

if(isset($_POST['frtvalue']) && ($_POST['frtvalue'] == 0)) {
    $valueone= "valueone";
} else {
    $valueone= 0;
};

if(isset($_POST['secvalue']) && ($_POST['secvalue'] == 0)) {
    $valuetwo= "valuetwo";
} else {
    $valuetwo= 0;
};

if(isset($_POST['thevalue']) && ($_POST['thevalue'] == 0)) {
    $valuethree= "valuethree";
} else {
    $valuethree= 0;
};

if(isset($_POST['fovalue']) && ($_POST['fovalue'] == 0)) {
    $valuefour= "valuefour";
} else {
    $valuefour= 0;
};

if(isset($_POST['fitvalue']) && ($_POST['fitvalue'] == 0)) {
    $valuefive= "valuefive";
} else {
    $valuefive= 0;
};

$sql = "INSERT INTO values(fixvalue,valueone,valuetwo,
                            valuethree,valuefour,valuefive)
                VALUES('".$fixvalue."','".$valueone."','".$valuetwo."',
                        '".$valuethree."','".$valuefour."','".$valuefive."')";

if ($con->query($sql) === TRUE) {

    echo'<button class="btn btn-success" style="left:400px;bottom:20px;width:200px;">Sucess</button>';
    echo "<script type= 'text/javascript'>alert('New record OK');</script>";
} else {
    echo "<script type= 'text/javascript'>alert('Error: " . $sql . "<br>"     $con->error."');</script>";
}

$con->close();
}
?>

最佳答案

这是我会做的:

<form action="" method="post">
    <input type="checkbox" name="fixvalue"> Checkbox<br>
    <input type="checkbox" name="valueone"> Checkbox 1<br>
    <input type="checkbox" name="valuetwo"> Checkbox 2<br>
    <input type="checkbox" name="valuethree"> Checkbox 3<br>
    <input type="checkbox" name="valuefour"> Checkbox 4<br>
    <input type="checkbox" name="valuefive"> Checkbox 5<br>
    <input type="submit" name="submit">
</form>

<?php

$fields = [
    'fixvalue' => 0,
    'valueone' => 0,
    'valuetwo' => 0,
    'valuethree' => 0,
    'valuefour' => 0,
    'valuefive' => 0
];

if($_POST['submit']){
    foreach($_POST as $key => $value) {
        if($key !== 'submit') {
            $fields[$key] = $key;
        }
    }

    extract($fields);
    $sql = $db->prepare("INSERT INTO table_name (fixvalue, valueone, valuetwo, valuethree, valuefour, valuefive) VALUES(:fixvalue, :valueone, :valuetwo, :valuethree, :valuefour, :valuefive)");
    foreach ($fields as $key => $value) {
        $sql->bindValue(':'.$key, $$value);
    }
    $sql->execute();
}

?>

10-08 20:21