【问题标题】:PHP _POST issue making no sense. values disappearing?PHP _POST 问题毫无意义。价值观消失?
【发布时间】:2015-09-08 14:47:49
【问题描述】:

所以这对我来说是非常令人困惑的。我有一个包含行的页面(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 页面以正确的行值呈现,如调试屏幕截图中所示,那么代码如何只是拾取下一页的顶行。这是怎么回事?!

如您所见,任何帮助都将不胜感激,哈哈,因为我可能会也可能不会因为盯着这个而发疯!

【问题讨论】:

  • 所以你有多个表单/按钮/字段重复ids?即passForm这些对于每个表单应该是唯一的。

标签: php forms post hidden


【解决方案1】:

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

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

【讨论】:

  • 简单而有效。
  • 小崽子。一点点误会大有裨益。谢谢你纠正我。天哪,不敢相信我没有意识到这一点。谢谢!
猜你喜欢
  • 1970-01-01
  • 2012-10-16
  • 2019-10-29
  • 2015-09-16
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-07-24
相关资源
最近更新 更多