如何通过取消选中复选框来删除数据库记录


How to delete a database record by unchecking a checkbox

<form action="" method="post">
<?php
$sql = "select * from tb_transport";
$query = mysql_query($sql);
$a=1;
while($row=mysql_fetch_array($query))
{
    $sql_2="select * from transport_two where transport_id='$row[name]'";
    $query_2=mysql_query($sql_2);
    $row_2=mysql_fetch_array($query_2);
?>
    <input type="checkbox"  name="courses[<?php echo $a; ?>][crs]" value="<?php echo $row["name"]; ?>" <?php  if($row_2["transport_id"]=="$row[name]") { ?> checked="checked" <?php } ?> /><    ?php echo $row["name"]; ?>
<?php  
    $a=$a+1;  
}
?>
    <input type="submit" name="save" />
</form>

这是我的表单,我有一些复选框依赖于我的数据库记录。

在这里,我也应用了代码,如果一个复选框值存在于数据库中,那么它被选中。

如果我选中了一个复选框,那么将插入一个带有复选框值的行。

现在我要找的是,如果我取消选中复选框,然后数据库行被删除。

我该怎么做?

插入代码:

<?php
if(isset($_POST["save"])) {
    $arr = $_POST["courses"];
    for ($i = 0; $i < 20; $i++) {
        if (!empty($arr[$i]['crs'])) {
            $a = $arr[$i]['crs'];
            mysql_query("insert into transport_two set transport_id='$a'");
        }
    }
}
?>

如果你想在一个复选框被标记/未标记的时候从数据库中删除,你需要使用JavaScript或jQuery。

如果你想在用户点击提交按钮的那一刻从数据库中删除,你必须将值发送到php -脚本,该脚本从数据库中更新/删除。

给checkbox一个简单的类。

<form action="" method="post">
        <?php
     $sql="select * from tb_transport";
  $query=mysql_query($sql);
       $a=1;
     while($row=mysql_fetch_array($query))
        {
     $sql_2="select * from transport_two where transport_id='$row[name]'";
  $query_2=mysql_query($sql_2);
  $row_2=mysql_fetch_array($query_2);
       ?>
    <input type="checkbox" class="deleteFromDb"  name="courses[<?php echo $a; ?>][crs]" value="<?php echo $row["name"]; ?>" <?php  if($row_2["transport_id"]=="$row[name]") { ?> checked="checked" <?php } ?> /><?php echo $row["name"]; ?>
       <?php    
      $a=$a+1;  
   }
             ?>
  <input type="submit" name="save" />
     </form>

在这里单击任何复选框,jquery检查它是选中或取消选中。如果未选中,则ajax发送请求从数据库中删除此记录。

$(document).ready(function(){
       $(".deleteFromDb").change(function(e){
              if ($(this).prop('checked')==false){ 
            $.ajax({type: "POST",
                    url: "deleterecord.php",
                    data: { id:$(this).val().trim() },
                    success:function(result){
                      var response = JSON.parse(result);
                       if(response.error){
                             //here provide a error msg to user.
                             alert(response.error);
                        }
                      if(response.success){
                            alert("record deleted");
                       }
            }});
          });
        }
        });

Delete.php在这里执行您的删除操作。

$id = $_POST['id'];
$strSQL = mysql_query("DELETE FROM `table` WHERE id = ".$id);
if($strSQL){
  $result['success'] = "success";
}
else
        {
          $result['error'] = "try again";
        }
echo json_encode($result); die;

现在,当你点击任何复选框,如果它被选中,记录将从数据库中删除。