首页 > 解决方案 > 如何在每个表单都有自己的提交按钮时提交多个 PHP 表单?

问题描述

我使用这样的 php 循环生成了一些表单:

 <?php
    while ($rowTechmen = $techmenQuery->fetch(PDO::FETCH_ASSOC)) {
    ?>
       <form method="post">
         <input type="text" name="textbox1"/>
         <button type="submit" name="submit1">Submit</button>
       </form>
    <?php
    }
    ?>

现在我有一些类似的表单,每个表单都有自己的提交按钮。我不想用一个按钮将它们全部提交。如何获取$_POST值并使用每个表单中的新值更新我的数据库?

标签: php

解决方案


要生成表单,请使用变量递增:

<?php
$i = 0;
while ($rowTechmen = $techmenQuery->fetch(PDO::FETCH_ASSOC)) {
    ?>
    <form method="post">
        <input type="text" name="textbox"/>
        <button type="submit" name="submit_<?php echo $i ?>">Submit</button>
    </form>
    <?php
    $i += 1;
}
?>

然后,如果您需要确定提交了哪个表单,您可以执行以下操作:

// When a form is submitted
if (isset($_POST) && !empty($_POST)) {

    // Get the submit number
    $submit_name = preg_grep("/submit_/", array_keys($_POST));
    $submit_id = ($parts = explode('_', $submit_name[1]))[1];

    // Display the data for testing
    var_dump($submit_id);
    echo $_POST['textbox'];
}

当然,您可以用数据库$i中的ID替换。使用函数的文档:


推荐阅读