我有与此示例类似的项目。
<?php
if (isset($_POST['delete'])) {
// Delete using id
}
if (isset($_POST['deleteAll'])) {
// Delete using array name check
}
?>
<form method="POST" action="index.php" onsubmit="return validate()"> // First form
<?php foreach ($rows as $row) : ?>
<form method="POST" action="index.php" onsubmit="return validate()> // Second form
<input type="checkbox" name="check[]" value="<?php $row['id'] ?>" />
<input type="hidden" name="id" value="<?php $row['id'] ?>" />
<input type="submit" name="delete" value="Delete" />
</form>
<?php endforeach ?>
<input type="submit" name="deleteAll" value="Delete checked items" />
</form>
onsubmit
用于在javascript
中使用确认功能。
我已经考虑过这一点,只能想到使用nested-form
.
second form
和submit delete
习惯于使用ID
delete
。
first form
和submit deleteAll
用于delete
所有选中的项目。
如果我delete second form
,
我点击delete
id
将是foreach
的last index
.
所以我会delete
最后的row
,而不是我想delete
row
。
我已经在想了,没有发现任何线索,
我希望这里有人能给出一个线索。
不要试图这样做。你只是让它变得更复杂。单一表格就足够了。
<form method="POST" action="index.php" onsubmit="return validate()">
<?php foreach ($rows as $row) : ?>
<input type="checkbox" name="check[]" value="<?php echo $row['id'] ?>" />
<button name="delete" value="<?php echo $row['id']; ?>">Delete</button><br/>
<?php endforeach ?>
<input type="submit" name="deleteAll" value="Delete checked items" />
</form>
.PHP
// handle single delete
if(isset($_POST['delete'])) {
$id = $_POST['delete']; // individual ID
}
// handle mulitple selected checkboxes
if(isset($_POST['deleteAll'])) {
$ids = $_POST['check'];
}