嵌套表格是禁止的吗?那怎么办呢?

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

first formsubmit deleteAll习惯delete所有检查项目.

如果我delete second form,

我点击deleteid将是last indexforeach.

所以我会delete在最后row,而不是row我想要的delete.

我已经在想,发现没有任何线索,

我希望这里有人能给出一个线索.

Kev*_*vin 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>
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)