Also habe ich mir ein paar Ressourcen angesehen, um mehrere Checkboxen als Eingabe zu verwenden. Ich baue ein PM-System und möchte, dass der Benutzer jede Nachricht abhaken und sie dann mit einer Schaltfläche löschen kann.Wie lösche man mehrere Einträge mit Checkboxen? (PHP)
Das Problem ist, dass, wenn ich eine Nachricht abhaken (e):
A: Sie haben zweimal auf die Schaltfläche Löschen klicken.
B: Nur die erste Nachricht in der Liste wird jemals gelöscht.
Die Tastengruppe:
<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>
Später auf den Tabellenzeilen:
<?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 } ?>
Und schließlich das Senden Beitrag:
<?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);
}
}
}
?>
'
Sie sind anfällig für [sql injection attacks] (http://bobby-tables.com). Überlegen Sie, was passiert, wenn jemand 'PMID' als Wert zum Löschen übergibt - Boom geht an Ihren gesamten Tisch. –
@MarcB Das merke ich, und ich untersuche es. –