<form method="post">
<?php
$sql = "SELECT * FROM test2 ORDER by id ASC";
$result = mysqli_query($conn, $sql) or die(mysql_error());
while($row = mysqli_fetch_assoc($result))
{
echo '<table><tr>';
echo '<td><input type="checkbox" id="'.$row['id'].'" name="id" value="'.$row['id'].'"></td>';
echo '<td class="cEmne">'.$row['emne'].'</td>';
echo '<td class="cBesked">'.$row['besked'].'</td>';
echo '</tr></table>';
}
if(isset($_POST['submit'])){
$id = $_POST['id'];
$sql = "DELETE FROM test2 WHERE id='$id'";
mysqli_query($conn, $sql);
echo "<script>window.location.href = 'index.php'</script>";
}
?>
<input type="submit" name="submit" id="submit" value="slet">
</form>
它只删除我检查过的第一个复选框。
我想删除所有选中的复选框。
答案 0 :(得分:2)
对字段使用name[]
表示法:
echo '<td><input type="checkbox" id="'.$row['id'].'" name="id[]" value="'.$row['id'].'"></td>';
^----here
然后迭代$_POST['id']
作为数组并删除每条记录或使用where id in
- 语句。
答案 1 :(得分:0)
您需要将$_POST
的结果作为字符串,请执行以下操作:
$idList = implode ("','", $_POST['id']);
$sql = "DELETE FROM test2 WHERE id IN ('$idList')";