PHP / SQL: Multiple delete data using Select Option

时光怂恿深爱的人放手 提交于 2020-06-29 03:56:23

问题


Now I create a system that can delete multiple data using select option. But here I got some issues. When i only select one data, and press button delete, it will delete. But if I choose more than one data, for example, 3 data, it will only delete the latest id of the data. Below is my the image

And below is my code:

index.php

<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:"insert.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>

insert.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";
    }


    ?>

Can anyone knows how to solve this problem? Thanks


回答1:


framework will hold one value every time.

Use input arrays -

Change name="framework" to name="framework[]".

and in query -

WHERE framework_id in ('". implode("','", $_POST["framework_id"]) ."')"

Try to use parameter binding for security.



来源:https://stackoverflow.com/questions/62337448/php-sql-multiple-delete-data-using-select-option

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!