我想知道是否有人可以为我解决这个问题。
我有一个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();
?>
非常感谢任何帮助!
答案 0 :(得分:2)
提交表单时要发送的所有<input....
必须具有name
属性。 id
属性仅由DOM和javascript使用
因此,为此行添加名称属性
<input type="hidden" value="<?php echo $userData['id'] ?>" name="ID" id="ID" form="propupdate">
它将被发送到PHP脚本