PHP 提交表单隐藏的输入值在 while 循环中


php submit form hidden input values in a while loop

我已经多次遇到这个问题,所以我想知道其他人是否也有它,或者有人知道一个好的解决方案。

 $i = 1;
 <form method="POST" action="submit.php">
 while($i < 10) {
 <p> info </p>
 <input type="hidden" value="$i" name="number" />
 <input type="submit" value="accept" />
 <input type="submit" value="decline" />
 $i++;
 }
 </form>

我遇到的问题是它总是提交最高值。对于此示例,我将有 10 个提交和拒绝按钮,并想确定它们是否单击第 4 个接受按钮,服务器端语言会将其识别为第 4 个提交按钮。我已经在输入隐藏名称 = number$i 中添加了一个变量并且它可以工作,但有时我有一个 50-100 的循环,似乎有一种更好的方法来收集具有不同变量名称的数据对于这么多选项。

任何帮助都会很棒。谢谢。

我遇到的问题是它总是提交最高值。

不。所有值都已提交 – 但 PHP 会覆盖具有相同名称的参数。

您可以使用像 number[] 这样的名称 – 方括号将使 PHP 生成提交值的数组,而不是覆盖它们。

但这在这里对您没有帮助,因为您的提交按钮仍将提交整个表单 - 因此无论按下什么提交按钮,您都将获得所有值。

您可以为每个项目使用单独的表单,或者您必须使用提交按钮本身传递信息。当然,您不想将该信息放入值中,因为这是按钮文本 - 但您可以将其以accept[37]的形式放入名称中 - 然后您将获得一个键为 37 的数组,因此您只需要查看收到的数组中使用了哪个键。

但是,如果您不想为每个项目一遍又一遍地提交表单 - 那么也许您应该使用单选按钮进行接受/拒绝选择,然后一次提交所有内容。