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

时间:2013-11-14 18:01:56

标签: php post

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

 $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个接受按钮。 我已经在输入隐藏名称=数字$ i中添加了一个变量,但它有效,但有时我有一个50-100的循环,似乎有更好的方法来收集具有不同变量名称的数据。

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

1 个答案:

答案 0 :(得分:3)

  

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

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

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

但是这不会对你有帮助,因为你的提交按钮仍然会提交整个表格 - 所以无论按下什么提交按钮,你都会获得所有的价值。

您可以为每个项目使用单独的表单,或者您必须使用提交按钮本身传递信息。当然你不想把这些信息放到值中,因为那是按钮文本 - 但你可以把它放在名字中,以accept[37]的形式 - 然后你将获得一个带有<的数组em> key 37,因此您只需要查看收到的数组中使用了哪个密钥。

但如果您不想为每个单项反复提交表单 - 那么您可能应该使用单选按钮进行接受/拒绝选择,然后立即提交所有内容。