所以我一直在寻找使用多个复选框作为输入的一些资源。我正在建立一个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);
}
}
}
?>
答案 0 :(得分:3)
事实证明(通过与评论中的OP交谈),复选框的empty()
函数需要为isset()
。
然后需要(标题)重定向(成功删除后)以显示(新)结果。
参考文献:
您还应该考虑使用预先准备好的声明:
脚注:
正如我所提到的,<form>
不能成为<table>
的孩子,而>
的{{1}}则不会造成严重破坏。