這個問題可能已經被問過多次,但我仍然無法找到解決我的問題的合適的作業解決方案。所以,我有一個 sql 表(id??-> int 和 status-> tiny-int),它需要在沒有提交按鈕的情況下被激活,并在打開或關閉時保持當前狀態。我在這里找到了我的問題的解決方案。但是,這僅適用于一個復選框,我需要它用于四個復選框。我的嘗試有點奏效,但我覺得可能有更好的方法。有人可以為我提供任何建議嗎?
謝謝
<form id="form" action="" method="POST" >
<input type="checkbox" name="checkbox1" onchange="$('#form').submit();"
<?php if(isset($_POST['checkbox1'])) { echo 'checked="checked"'; } ?>
<input type="checkbox" name="checkbox2" onchange="$('#form').submit();"
<?php if(isset($_POST['checkbox2'])) { echo 'checked="checked"'; } ?>>
</form>
if (isset($_POST['checkbox1'])) {
$sql1="UPDATE switch SET status = '1' WHERE id = '1'";
} else {
$sql1="UPDATE switch SET status = '0' WHERE id = '1'";
}
$result=$conn->query($sql1);
if (isset($_POST['checkbox2'])) {
$sql2="UPDATE switch SET status = '1' WHERE id = '2'";
} else {
$sql2="UPDATE switch SET status = '0' WHERE id = '2'";
}
$result=$conn->query($sql2);
uj5u.com熱心網友回復:
$('#form')是 jquery 功能。https://jquery.com/如果你想使用 Jquery,你需要通過<script>標簽添加庫。但我看不出有什么理由在這里使用它,您可以使用 Javascript 函式:document.getElementById() 來選擇表單 DOM 元素。
所以我建議從:onchange="$('#form').submit();"改為onchange="document.getElementById("form").submit();"
https://developer.mozilla.org/en-US/docs/Web/API/Document/getElementById https://developer.mozilla.org/en-US/docs/Web/API/HTMLFormElement/submit
看起來您也忘記<?php在表單之后,if 陳述句之前添加標簽。
uj5u.com熱心網友回復:
您只需要按照 @Kudz? 的說明乘以您的代碼塊。像這樣:
提示:以后當您想在資料庫中存盤來自用戶的輸入時,請使用準備好的 SQL 陳述句,以防止SQL 注入。
<?php
if(isset($_POST) && count($_POST) > 0){
if (isset($_POST['checkbox1'])) {
$sql1="UPDATE switch SET status = 1 WHERE id = 1";
} else {
$sql1="UPDATE switch SET status = 0 WHERE id = 1";
}
$result=$conn->query($sql1);
if (isset($_POST['checkbox2'])) {
$sql2="UPDATE switch SET status = 1 WHERE id = 2";
} else {
$sql2="UPDATE switch SET status = 0 WHERE id = 2";
}
$result=$conn->query($sql2);
if (isset($_POST['checkbox3'])) {
$sql3="UPDATE switch SET status = 1 WHERE id = 3";
} else {
$sql3="UPDATE switch SET status = 0 WHERE id = 3";
}
$result=$conn->query($sql3);
if (isset($_POST['checkbox4'])) {
$sql4="UPDATE switch SET status = 1 WHERE id = 4";
} else {
$sql4="UPDATE switch SET status = 0 WHERE id = 4";
}
$result=$conn->query($sql4);
}
?>
<!doctype html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport"
content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>Document</title>
</head>
<body>
<form id="form" action="" method="POST" >
<label>
Checkbox 1
<input type="checkbox" name="checkbox1" value="1" onchange="document.getElementById('form').submit();"
<?php if(isset($_POST['checkbox1'])) { echo 'checked="checked"'; } ?>>
</label>
<label>
Checkbox 2
<input type="checkbox" name="checkbox2" value="1" onchange="document.getElementById('form').submit();"
<?php if(isset($_POST['checkbox2'])) { echo 'checked="checked"'; } ?>>
</label>
<label>
Checkbox 3
<input type="checkbox" name="checkbox3" value="1" onchange="document.getElementById('form').submit();"
<?php if(isset($_POST['checkbox3'])) { echo 'checked="checked"'; } ?>>
</label>
<label>
Checkbox 4
<input type="checkbox" name="checkbox4" value="1" onchange="document.getElementById('form').submit();"
<?php if(isset($_POST['checkbox4'])) { echo 'checked="checked"'; } ?>>
</label>
</form>
</body>
</html>
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/394505.html
上一篇:docker-compose、WordPress和MariaDB、PHP致命錯誤:未捕獲的mysqli_sql_exception:連接被拒絕
