[英]How do I make my database update a value when a checkbox is checked in my table { AJAX }
[英]How do I update database with checkbox value?
我正在嘗試根據復選框輸入更新列值。 單擊觸發了代碼(我用alert()測試了),但是數據庫中沒有更新,控制台中也沒有錯誤顯示。 請注意,我正在使用圖像替換該復選框。
的CSS
input[type=checkbox] {
display: none;
}
label:before {
content: url("../images/house.png");
z-index: 100;
}
:checked + label:before {
content: url("../images/home.png");
}
PHP / HTML
if ($result->num_rows > 0) {
while($row = $result->fetch_assoc()) {
echo
'
<div class="mx-auto" style="max-width:500px;">
<div class="form-group">
<div class="form-inline">
<div class="form-group col-1">
<input type="checkbox" name="home['. $row["id"].']" id="'. $row["id"].'" ' . ($row["home"]==1 ? ' checked="checked"' : '') . '>
<label for="'. $row["id"].'"></label>
</div>
<div class="col-10" style="font-weight:bold;">
'.$row["address"].' '. $row["suburb"].'
</div>
<div class="col-1">
<a style="float:right; margin-bottom:5px;" href="'.$row["gmap"].'" class="btn btn-success">Go</a>
</div>
</div>
AJAX
<script>
$(document).ready(function(){
$('input[type="checkbox"]').on("click", function(){
$.post("work/updateaddress.php",{home:this.checked,id:this.id});
});
});
的PHP
$id = $mysqli->real_escape_string($_POST['id']);
$home = $mysqli->escape_string($_POST['home']);
if(isset ($_POST["home"])) {
$sql = "UPDATE addresses SET home='$home' WHERE id='$id'";
if($mysqli->query($sql) === TRUE){
} else {
echo "error" . $sql . "<br>".$mysqli->error;
}
}
您需要以這種方式訪問POST變量
$_POST['home'][$_POST['id']]
因為您已經定義了如下名稱
<input type="checkbox" name="home[id]">
進一步我建議您像這樣檢查ID和復選框狀態:
$id = intval($_POST['id']);
$home = ($_POST['home'][$_POST['id']] == 'true' ? 1 : 0);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.