首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >PHP / MySQL:多次删除时出错,仅删除了最新的ID

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

Stack Overflow用户
提问于 2020-06-15 15:59:57
回答 1查看 30关注 0票数 0

我的代码出了点问题。我想从MySQL数据库中删除从选择选项填充的多个数据。

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

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

index.html

代码语言:javascript
复制
    <?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

代码语言:javascript
复制
    <?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";
    }


    ?>

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

非常感谢。

EN

回答 1

Stack Overflow用户

发布于 2020-06-15 16:11:44

这就是框架id被覆盖的地方:

代码语言:javascript
复制
$('#framework').change(function(){
    $('#framework_id').val($('#framework').val());
});

只有当您的ajax请求发送时(在本例中,当您单击提交按钮时),delete.php才会运行。

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

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/62383838

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档