Javascript 使用复选框使用php和ajax删除多条记录

Javascript 使用复选框使用php和ajax删除多条记录,javascript,php,html,ajax,mysqli,Javascript,Php,Html,Ajax,Mysqli,我试图从数据库中删除一些记录,因为它遵守使其出现在表中的规则,所以我尝试使用php和ajax来完成此操作。虽然我在线复制了代码来执行操作。 但这就是我注意到的,每当我选择要删除的记录时,它将淡出所选行,但在刷新页面时,记录将重新出现,这意味着我丢失了一些我不知道的内容,下面是代码\ index.php <?php //include auth.php file on all secure pages require("../db.php"); session_start(); if

我试图从数据库中删除一些记录,因为它遵守使其出现在表中的规则,所以我尝试使用php和ajax来完成此操作。虽然我在线复制了代码来执行操作。 但这就是我注意到的,每当我选择要删除的记录时,它将淡出所选行,但在刷新页面时,记录将重新出现,这意味着我丢失了一些我不知道的内容,下面是代码\

index.php

    <?php
//include auth.php file on all secure pages
require("../db.php");
session_start();
if(!isset($_SESSION["username"])){
header("Location: login");
exit(); }
?>
<?php require_once('header.php')?>  
 <?php
//index.php
$query = "SELECT * FROM consignment WHERE shipmentstatus='Pending'";
$result = mysqli_query($con, $query);
?>
<div class="container content">


   <?php
   if(mysqli_num_rows($result) > 0)
   {
   ?>
   <div class="table-responsive">
  <table id="myTable" class="table table-striped" >  
        <thead>
     <tr>
      <th>Consignment No</th>
        <th>Origin</th>
        <th>Destination</th>
        <th>Pickup Date</th>
        <th>Status</th>
        <th >Action</th>
     </tr>
     </thead>
   <?php
    while($row = mysqli_fetch_array($result))
    {
   ?>
   <tbody>
     <tr id="<?php echo $row["consignmentno"]; ?>" >
       <td><?php echo $row["consignmentno"]; ?></td>
      <td><?php echo $row["shipmentorigin"]; ?></td>
      <td><?php echo $row["shipmentdestination"]; ?></td>
      <td><?php echo $row["shipmentpickupdate"]; ?></td>
      <td><?php echo $row["shipmentstatus"]; ?></td>
      <td><input type="checkbox" name="customer_id[]" class="delete_customer" value="<?php echo $row["consignmentno"]; ?>" /></td>
     </tr>
    </tbody>
   <?php
    }
   ?>
    </table>
   </div>
   <?php
   }
   ?>
   <div align="center">
    <button type="button" name="btn_delete" id="btn_delete" class="btn btn-success">Delete</button>
   </div>
 </body>
</html>

<script>
$(document).ready(function(){

 $('#btn_delete').click(function(){

  if(confirm("Are you sure you want to delete this?"))
  {
   var id = [];

   $(':checkbox:checked').each(function(i){
    id[i] = $(this).val();
   });

   if(id.length === 0) //tell you if the array is empty
   {
    alert("Please Select atleast one checkbox");
   }
   else
   {
    $.ajax({
     url:'deleterecord.php',
     method:'POST',
     data:{id:id},
     success:function()
     {
      for(var i=0; i<id.length; i++)
      {
       $('tr#'+id[i]+'').css('background-color', '#ccc');
       $('tr#'+id[i]+'').fadeOut('slow');
      }
     }

    });
   }

  }
  else
  {
   return false;
  }
 });

});
</script>

<?php require_once('footer.php')?> 
<?php
require("../db.php");
session_start();
if(!isset($_SESSION["username"])){
header("Location: login");
exit(); }
?>
<?php
if(isset($_POST["id"]))
{
 foreach($_POST["id"] as $id)
 {
  $query = "DELETE FROM consignment WHERE consignmentno = '".$id."'";
  mysqli_query($con, $query);
 }
}

?>


****下面是经过测试的完整代码****


托运编号
起源
目的地
取货日期
地位
行动
删除记录
$(文档).ready(函数(){
$('#btn_delete')。单击(函数(){
如果(确认(“是否确实要删除此?”))
{
var id=[];
$(':复选框:选中')。每个(函数(i){
id[i]=$(this.val();
});
if(id.length==0)//告诉您数组是否为空
{
警报(“请至少选择一个复选框”);
}否则
{
$.ajax({
url:'deleterecord.php',
方法:“POST”,
数据:{id:id},
成功:函数()
{
对于(变量i=0;i
id中可能有问题。 尝试在脚本中使用此选项

$.each($(':checkbox:checked'),function(){ 
id.push($(this).val()); 
});

设置错误日志以捕获警告并检查您得到的错误。它可能是您的数据库连接,也可能是您的查询。如果您对SQL注入开放,请参数化该查询。您还可以使用1个查询执行所有删除。尝试检查值​​正在以数组id发送的。您可以通过浏览器的控制台执行此操作。
$post
语法无效,并且没有索引
“寄售号”
正在发送。您应该使用ajax进行处理。您可以发送javascript/jquery代码吗?OP正在使用ajax…查看问题中的代码只需修改此行$(“输入:复选框”)[name=audition_no]:checked”).each(function(){id.push($(this.val());});这会解决什么问题?确保选择器更具体,但如果
$(':checkbox:checked')
不返回匹配,则更具体也没有帮助。不要猜测答案中可能出现的错误
$.each($(':checkbox:checked'),function(){ 
id.push($(this).val()); 
});