PHP / MySQL:多次删除时出错,仅删除最新的ID



我的代码遇到了一些问题。我想从MySQL数据库中删除从"选择选项"填充的多个数据。

示例:我选择ID 为 5、2、4 的数据,然后按删除按钮,它只会删除最新的 id 为 5。

我能知道问题出在哪里吗?下面是我的代码:

索引.html

<?php
include("configPDO.php");
$smt = $conn->prepare("SELECT * FROM frame_list ORDER BY framework_name ASC");
$smt->execute();
$results = $smt->fetchAll();

?>
<form method="post" id="multiple_select_form">
<select name="framework[]" id="framework" class="form-control selectpicker" data-live-search="true" multiple>
<?php foreach ($results as $row2): ?>
<option value= <?php echo $row2["framework_id"]; ?>><?php echo $row2["framework_name"];?></option>
<?php endforeach ?>
</select>
<br><br>
<input type="hidden" name="framework_id" id="framework_id" />
<input type="submit" name="submit" class="btn btn-info" value="Submit" />
</form>
<script>
$(document).ready(function(){
$('.selectpicker').selectpicker();
$('#framework').change(function(){
$('#framework_id').val($('#framework').val());
});
$('#multiple_select_form').on('submit', function(event){
event.preventDefault();
if($('#framework').val() != '')
{
var form_data = $(this).serialize();
$.ajax({
url:"delete.php",
method:"POST",
data:form_data,
success:function(data)
{
//console.log(data);
$('#framework_id').val('');
$('.selectpicker').selectpicker('val', '');
alert(data);
}
})
}
else
{
alert("Please select framework");
return false;
}
});
});

</script>

删除.php

<?php
include("configPDO.php");
$smt = $conn->prepare("DELETE FROM frame_list WHERE framework_id = '".$_POST["framework_id"]."'");
$smt->execute();
if($smt){
echo "Data DELETED";
}else{
echo "Error";
}

?>

如果有人能解决我的问题,请不胜感激。

谢谢。

这是框架ID被覆盖的地方:

$('#framework').change(function(){
$('#framework_id').val($('#framework').val());
});

删除.php 仅在您的 ajax 请求发送时运行(在这种情况下,当您单击提交按钮时(。

因此,如果您想同时删除它们,您可能希望在单个请求中传递多个 ID。 或者,您可能希望通过在每次选择 ID 时发送 AJAX 请求来逐个删除它们。

最新更新