How to delete rows using checkboxes in php and mysql
P粉982009874
2023-09-01 22:02:23
<p>I created a table with the database information and tried creating checkboxes to be able to delete rows more easily, but something isn't working. </p>
<p>I have a button with a form: </p>
<pre class="brush:php;toolbar:false;"><form action="delete-register.php" method="post">
<button type="button" class="btn btn-primary"><span class="fe fe-file-plus fe-12 mr-2"></span>New</ button>
<button type="submit" name="delete" class="btn btn-secondary"><span class="fe fe-trash fe-12 mr-2"></span> ;Delete</button>
</form></pre>
<p>I have rows with checkboxes:</p>
<pre class="brush:php;toolbar:false;"><form action="delete-register.php" method="post">
<td>
<div class="custom-control custom-checkbox">
<input type="checkbox" class="custom-control-input" id="<?php echo $row['id']; ?>" name="selected[]" value="<?php echo $row['id']; ?>">
<label class="custom-control-label" for="<?php echo $row['id']; ?>"></label>
</div>
</td>
</form></pre>
<p>Also delete-register.php: </p>
<pre class="brush:php;toolbar:false;">if (isset($_POST['delete'])) {
if (isset($_POST['selected'])) {
foreach ($_POST['selected'] as $id) {
$query = "DELETE FROM registers WHERE id = $id";
mysqli_query($conn, $query);
}
header('Location: registers.php');
exit;
}
}</pre>
<p>The problem is that "selected" is always empty, so nothing is deleted from the database.
How can I solve this problem? </p>
Please note that the data submitted will be within the scope of
<form>....</form>
Since you have two forms, when you click the submit button in the first form, it will not send the second form's data to the server.
So change the second form to:
[Additional explanation]
If you want to stick with the first form to trigger the deletion then please:
id=form2
in the 2nd form so as to facilitate triggering of the submission by form1This is the modified code: