POST值不会通过HTML表单输入

时间:2017-08-19 15:30:20

标签: php html

编辑:点击发布方式太早了!!基本上这些价值观根本没有通过并更新数据库,但它将它视为成功而没有错误消息。

我想知道是否有人可以为我解决这个问题。

我有一个HTML表单,当勾选和/或未选中复选框时会自动提交。

HTML看起来像这样:

        <form action='propupdate.php' id='propupdate' method='post'>
  <input type="hidden" value="<?php echo $userData['id'] ?>" id="ID" form="propupdate">
  <input type="checkbox" value="Yes" id="slideThree" name="check" onchange="document.getElementById('propupdate').submit()" <?php echo ($userData['prop']=='Yes' ? 'checked' : '');?> form="propupdate"/>
  <label for="slideThree"></label>
        </form>

当我检查隐藏值是正确的时候,我还测试了自动检查或取消选中的php,这是有效的。起初我虽然自动提交缺少隐藏的输入,所以我尝试在输入中添加form =但这似乎没有用。

propupdate.php看起来像这样:

<?php

include 'index.php';
include 'credentials.php';

// Create connection
$conn = new mysqli($servername, $username, $password, $dbname);
// Check connection
if ($conn->connect_error) {
    die("Connection failed: " . $conn->connect_error);
} 

//Create variables
$ID=$_POST['ID'];
$prop=$_POST['slideThree'];

$sql = "UPDATE users SET prop='$prop' WHERE ID='$ID'";

if ($conn->query($sql) === TRUE) {
    header("Location:example.com");
} else {
    echo "Error updating record: " . $conn->error;
}

$conn->close();
?>

非常感谢任何帮助!

1 个答案:

答案 0 :(得分:2)

提交表单时要发送的所有<input....必须具有name属性。 id属性仅由DOM和javascript使用

因此,为此行添加名称属性

<input type="hidden" value="<?php echo $userData['id'] ?>" name="ID" id="ID" form="propupdate">

它将被发送到PHP脚本