Scr*_*ble 5 html php forms arrays checkbox
我有类似于这个例子的项目.
<?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>
Run Code Online (Sandbox Code Playgroud)
onsubmit过去常用的确认功能javascript.
我已经考虑过这个,只能考虑使用nested-form.
second form并submit delete习惯delete使用ID.
first form并submit deleteAll习惯delete所有检查项目.
如果我delete second form,
我点击delete的id将是last index的foreach.
所以我会delete在最后row,而不是row我想要的delete.
我已经在想,发现没有任何线索,
我希望这里有人能给出一个线索.
不要试图这样做.你只是让它变得更复杂.单一表格就足够了.
<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>
Run Code Online (Sandbox Code Playgroud)
PHP
// handle single delete
if(isset($_POST['delete'])) {
$id = $_POST['delete']; // individual ID
}
// handle mulitple selected checkboxes
if(isset($_POST['deleteAll'])) {
$ids = $_POST['check'];
}
Run Code Online (Sandbox Code Playgroud)