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

时间:2014-07-30 09:11:44

标签: php mysql

<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>

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

在这里,我也应用了代码,如果数据库中存在复选框值,则显示已选中。

如果我选中了复选框,则会插入带有复选框值的行。

现在我要找的是,如果我取消选中已检查的checbox,那么该数据库行将被删除。

我该怎么做?

这是我的插入代码:

<?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'");
        }
    }
}

?>

2 个答案:

答案 0 :(得分:1)

如果要在标记/取消标记复选框时从数据库中删除,则需要使用JavaScript或jQuery。

如果您想在用户点击提交按钮时从数据库中删除,您必须将值发送到您的PHP脚本,该脚本会从数据库中更新/删除。

答案 1 :(得分:0)

只需给复选框一个简单的类。

<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发送请求以从db中删除此记录。

$(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;

现在,当您单击任何复选框并且ubcheck时,该记录将从db。

中删除