我已经多次遇到过这个问题,所以我想知道其他人是否也有这个问题,或者有人知道这个问题的解决方案。
$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的循环,似乎有更好的方法来收集具有不同变量名称的数据。
任何帮助都会很棒。感谢。
答案 0 :(得分:3)
我遇到的问题是它总是提交最高值。
不。 提交所有值 - 但PHP会覆盖具有相同名称的参数。
您可以使用类似number[]
的名称 - 方括号将使PHP生成提交值的数组,而不是覆盖它们。
但是这不会对你有帮助,因为你的提交按钮仍然会提交整个表格 - 所以无论按下什么提交按钮,你都会获得所有的价值。
您可以为每个项目使用单独的表单,或者您必须使用提交按钮本身传递信息。当然你不想把这些信息放到值中,因为那是按钮文本 - 但你可以把它放在名字中,以accept[37]
的形式 - 然后你将获得一个带有<的数组em> key 37,因此您只需要查看收到的数组中使用了哪个密钥。
但如果您不想为每个单项反复提交表单 - 那么您可能应该使用单选按钮进行接受/拒绝选择,然后立即提交所有内容。