我的项目类似于这个例子。
<?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
过去delete
使用ID
。
first form
和submit deleteAll
用于delete
所有已检查的项目。
如果我delete second form
,
然后点击delete
,id
将成为last index
的{{1}}。
所以我会foreach
最后delete
,而不是row
我想row
。
我已经在思考,并没有发现任何线索,
我希望这里有人可以提供线索。
答案 0 :(得分:6)
不要试图这样做。你只是让它变得更复杂。单一表格就足够了。
<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'];
}