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