嵌套形式是被禁止的吧?那么如何做到这一点


Nested-form is forbidden right? Then how to do this?

我有与此示例类似的项目。

<?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 formsubmit delete习惯于使用ID delete

first formsubmit deleteAll用于delete所有选中的项目。

如果我delete second form

我点击delete id将是foreachlast 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'];
}
相关文章: