PHP _POST问题毫无意义.价值消失了吗?

new*_*ing 5 php forms post hidden

所以这对我来说太困惑了.我有一个有行的页面(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";
Run Code Online (Sandbox Code Playgroud)

当我点击一个特定的行时(比如说开发者控制台中显示的860) 在此输入图像描述

当我们使用代码在email.php页面上查看我们的结果时

$projectID = $_POST['passID'];
$rowID = $_POST['rowID'];
echo $projectID;
echo "<br />";
echo $rowID;
Run Code Online (Sandbox Code Playgroud)

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

在此输入图像描述

这对我没有意义.怎么会发生这种情况?html页面呈现的行值正确,如调试屏幕截图所示,那么代码如何只是在下一页上面的顶行.到底是怎么回事??!

正如你所看到的,任何帮助将不胜感激大声笑,因为我可能会或可能不会疯狂盯着这个!

Bar*_*mar 9

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

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