Если флажок установлен, вставлять данные, если флажок снят, удалять данные - PullRequest
0 голосов
/ 30 апреля 2020

Мне нужна помощь.

Я хочу создать систему, когда флажок установлен, вставляет данные в базу данных, когда она не отмечена, удаляет их из базы данных. Может быть, есть другое решение

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";   
    }  
}   

DB permissions_users

permissions_users_id | permissions_id | user_id 

visualisation

1 Ответ

0 голосов
/ 01 мая 2020

Так как я не уверен, какую javascript платформу вы используете, если таковая имеется, вот пример того, что вы можете сделать.

Если вы планируете отправлять данные на сервер при переключении изменен, вы устанавливаете флажок onchange и вам не нужно, чтобы он был массивом. И отправьте процесс, который вы хотите выполнить, вместе со значением разрешения, которое нужно изменить.

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

В вашем PHP, затем проверьте процесс:

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
 }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...