背景 - 我有一个RPI,连接了几个房屋周围的红外光束,PIR和簧片开关。如果有触发器,Python脚本会监视引脚的状态并通过无线婴儿监视器发出声音。有一组切换开关连接到I / O引脚,用于禁用单个区域或通过Python脚本更改发送短信或电子邮件视频抓取等行为。 Pi也是LAMP服务器,Python脚本在MySQL中记录事件。可以通过Web浏览器查看日志。
我的目标是删除切换开关组并替换为Web表单中的复选框,更新db中的值0或1,然后Python脚本将使用。在将其扩展为我想要控制的十几个值之前,我一直在整理一个示例代码以使其正常工作。
我尝试使用下面的代码是在打开网页时,复选框显示当前的db值,如果用户选中/取消选中该框并点击提交,则更新数据库,页面刷新到最多日期信息。我的代码并不像我想的那样,因为它只会向数据库返回零,而不管激活“提交”按钮时复选框的状态如何。
非常感谢任何帮助。
<!DOCTYPE html>
<html>
<head>
<title> checkbox wip</title>
<meta name="viewport" content="width=device-width; initial-scale=1.0">
<link rel="stylesheet" href="style.css">
</head>
<body>
<?php
$servername = "localhost";
$username = "*****";
$password = "*****";
$dbname = "Monitor";
$conn = mysqli_connect($servername, $username, $password, $dbname);
if (!$conn) {
die("Connection failed: " . mysqli_connect_error());
}
$thesql = "SELECT event FROM sw_sleep ORDER BY id DESC LIMIT 1";
$result = mysqli_query($conn, $thesql) or die(mysqli_error($conn));
$row_result = mysqli_fetch_assoc($result);
$SSwA = $row_result['event'];
mysqli_close($conn);
?>
<form action="update.php">
Sleep<input type="checkbox" id="sleepstat" name= "sleepstat1" value="1"> <br/>
<script>
document.getElementById("sleepstat").checked = <?php echo $SSwA?>;
</script>
<input type="submit" value="Submit">
</form>
</body>
</html>
这是update.php
<?php
$servername = "localhost";
$username = "******";
$password = "******";
$dbname = "Monitor";
$conn = mysqli_connect($servername, $username, $password, $dbname);
if (!$conn) {
die("Connection failed: " . mysqli_connect_error());
}
$val = $_POST['sleepstat1'];
$sql="INSERT INTO sw_sleep (event) VALUES ('$val')";
if (mysqli_query($conn, $sql)) {
echo "New record created successfully";
} else {
echo "Error: " . $sql . "<br>" . mysqli_error($conn);
}
mysqli_close($conn);
header("Location: index.php");
?>