PHP _POST 问题毫无意义。价值观消失?

PHP _POST issue making no sense. values disappearing?

所以这让我很困惑。我有一个包含行的页面 (index.php)。打印出来的行看起来像这样

等等...正如您从下面的代码中看到的那样,我添加了调试语句以显示 passID(800 个数字)和 rowID(顺序)

    echo "{$row['ID']}";
    echo"
    <form action=\"./functions/email.php\" id='passForm' method='post'>
    <input type='hidden' id='passID' name='passID' value='{$row['ID']}'/>
    <input type='hidden' id='rowID' name='rowID' value='$rowID'/>
    <button type=\"submit\" form=\"passForm\" value=\"Submit\" style=\"height:25px; width:75px\">Pass</button>
    </form>";
    echo "$rowID";

当我点击特定行时(假设这里是开发者控制台中显示的 860)

当我们使用代码

在email.php页面上查看结果时
$projectID = $_POST['passID'];
$rowID = $_POST['rowID'];
echo $projectID;
echo "<br />";
echo $rowID;

我们看到该值已更改为 865 和第 1 行,而不是预期的 860 和第 3 行?!

这对我来说毫无意义。这怎么会发生? html 页面以正确的行值呈现,如调试屏幕截图所示,那么代码是如何选择下一页的第一行的。怎么回事??!

如您所见,我们将不胜感激,因为我可能会或可能不会发疯地盯着它看!

问题是提交按钮中的 form="passForm" 属性。它导致所有提交按钮在第一行提交表单。如果省略此属性,提交按钮将应用于当前行中的包含表单,这正是您想要的。

您还应该从所有元素中删除 id 属性,或者通过在 ID 中包含行 ID 使它们唯一,因为 ID 需要是唯一的。