我的代码出了点问题。我想从MySQL数据库中删除从选择选项填充的多个数据。
例如:我选择id为5,2,4的数据,然后按delete按钮,它只删除最新的id为5的数据。
我能知道问题出在哪里吗?下面是我的代码:
index.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>delete.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";
}
?>如果有人能解决我的问题,我将不胜感激。
非常感谢。
发布于 2020-06-15 16:11:44
这就是框架id被覆盖的地方:
$('#framework').change(function(){
$('#framework_id').val($('#framework').val());
});只有当您的ajax请求发送时(在本例中,当您单击提交按钮时),delete.php才会运行。
因此,如果您想同时删除多个id,您可能需要在单个请求中传递多个id。或者,您可能想要通过每次选择id时发送ajax请求来逐个删除它们。
https://stackoverflow.com/questions/62383838
复制相似问题