如何使用Checkbox删除多个条目? (PHP)

时间:2016-07-27 19:22:01

标签: php sql checkbox

所以我一直在寻找使用多个复选框作为输入的一些资源。我正在建立一个PM系统,希望用户能够检查任何消息,然后用一个按钮删除它们。

问题是每当我检查任何消息时:

答:你必须两次点击删除按钮。

B:只有列表中的第一条消息被删除。

按钮组:

<form method="post"
    <div class="button-group">
        <button type="submit" name="delete" class="delete button inbox">Delete</button>
        <button type="submit" name="mark" class="mark button inbox">Mark as Read</button>
    </div>

后面的表行:

<?php
    while ($row = mysqli_fetch_array($result)){?>
        <tr>
            <td><?php echo $row['PM_User1ID'];?></td>
            <td><?php echo $row['PM_User2ID'];?></td>
            <td><?php echo $row['PM_Subject'];?></td>
            <td><?php echo $row['PM_Timestamp'];?></td>
            <td>
                <label>
                    <input type="checkbox" name="check_list[]" value="<?php echo $row['PMID'];?>"><?php echo $row['PMID'];?>
                </label>
                </form>
            </td>
            <?php echo '<td><a name="'.$row['PMID'].'"href = "?link='.$row['PMID'].'">Reply</a></td>'; ?>
        </tr>
    <?php } ?>

最后提交帖子:

<?php
        if (isset ($_POST['delete'])){

            if(!empty($_POST['check_list'])){

                foreach($_POST['check_list'] as $selected){

                    $pmDelete = "DELETE FROM pm WHERE PMID = $selected"; 
                    $deletePM = $con->query($pmDelete);

                }
            }   
        }
    ?>

PM Page

GIF of issue

1 个答案:

答案 0 :(得分:3)

事实证明(通过与评论中的OP交谈),复选框的empty()函数需要为isset()

然后需要(标题)重定向(成功删除后)以显示(新)结果。

参考文献:

您还应该考虑使用预先准备好的声明:

脚注:

正如我所提到的,<form>不能成为<table>的孩子,而>的{​​{1}}则不会造成严重破坏。