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 需要是唯一的。
所以这让我很困惑。我有一个包含行的页面 (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 需要是唯一的。