php - 选中复选框时,如果未选中复选框,则插入数据删除数据
问题描述
我需要帮助。
我想创建一个系统,当复选框被选中时将数据插入数据库,当它被取消选中时,它将它从数据库中删除。也许还有另一种解决方案
HTML
<div class="row">
<div class="col-lg-9"><label for="vehicle1">Perm 1</label></div>
<div class="col-lg-3"><label class="switch"><input value="1" name="permchecked[]" type="checkbox"><span class="slider"></span></label></div>
</div>
<div class="row">
<div class="col-lg-9"><label for="vehicle1">Usuwanie/Perm 2</label></div>
<div class="col-lg-3"><label class="switch"><input value="2" name="permchecked[]" type="checkbox"><span class="slider"></span></label></div>
</div>
<div class="row">
<div class="col-lg-9"><label for="vehicle1">Perm 3</label></div>
<div class="col-lg-3"><label class="switch"><input value="3" name="permchecked[]" type="checkbox"><span class="slider"></span></label></div>
</div>
PHP
if(isset($_POST['u_permissions_update'])){
if (isset($permcheckeds)){
foreach ($permcheckeds as $permchecked) {
$query = $db2->prepare("INSERT INTO permissions_users SET user_id = :u_permissions_update, permissions_id= :permchecked");
$query->bindValue(':u_permissions_update', $u_permissions_update);
$query->bindValue(':permchecked', $permchecked);
$query->execute();
$_SESSION['success'] = "Work";
}
} else {
$_SESSION['success'] = "Not Working";
}
}
数据库权限_用户
permissions_users_id | permissions_id | user_id
解决方案
Since I'm not sure what javascript framework you are using if any, here is a blueprint to what you can do.
If you are planning on sending the data to the server when the switch is changed, you check the onchange for the checkbox and you don't need it to be an array. And submit the process that you want to happen along with the value of the permission to be changed.
var _checks = document.querySelectorAll("input[name=permchecked]");
_checks.forEach(function(el){
el.addEventListener("change",function(){
var field_data = {
"process" : (this.checked) ? "add" : "delete",
"permission": this.value
};
//using ajax, submit field_data to the server
});
});
PHP
In your PHP, then check for process:
if(isset($_POST['process'])){
if($_POST['process'] == "delete"){
//delete from database where that permission equals the value passed plus that user. Even if the permission doesn't exist in the database already, still just run the single delete query. No reason to add an additional query to check that it exists.
}
elseif($_POST['process'] == "add"){
//add that permission to the database
}
}
推荐阅读
- python - tryng to import a file inside a function,then using the import in another function, getting a unresolve error
- c# - 使用 JQuery ajax MVC 的登录表单
- python - 将多个 Dash 应用程序集成到 Flask
- python - Python beautifulSoup WebScrape Span
- csv - 仅允许 .csv 文件进行 nginx 身份验证
- python - 在 Python 中实现合并排序时遇到问题
- r - 使用 caret/gbm 的多项分类器的 mnLogloss 错误
- python - 在 Python 中减去数据帧,在列中返回 NaN
- reactjs - 我的对话框在单击时产生错误
- css - 使用 grid-auto-flow: column 固定列数