0

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

 $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 个提交和拒绝按钮,并想确定他们是否单击了第四个接受按钮,服务器端语言会将其识别为第四个提交按钮。我在输入 hidden name = number$i 中添加了一个变量,它可以工作,但有时我有一个 50-100 的循环,似乎有更好的方法来为这么多选项收集具有不同变量名的数据。

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

4

1 回答 1

3

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

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

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

但这在这里对你没有帮助,因为你的提交按钮仍然会提交整个表单——所以你会得到所有的值,无论按下什么提交按钮。

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

但是,如果您不想为每个项目反复提交表单,那么也许您应该使用单选按钮来选择接受/拒绝选项,然后一次性提交。

于 2013-11-14T18:08:48.843 回答