1

我希望这是一件我想念或做得不好的简单事情。

它涉及从表单上的 1 个提交按钮发布两个结果。

无需发送大量代码,关键在于:(这是表格中的一系列提交按钮)

<td><input type=\"hidden\" name=\"query\" value=\"$query1\"><input type=\"submit\"       name=\"Submitano\" value='$aa'></td>
<td><input type=\"hidden\" name=\"query\" value=\"$query2\"><input type=\"submit\"  name=\"Submitano\" value='$ab'></td>
<td><input type=\"hidden\" name=\"query\" value=\"$query3\"><input type=\"submit\" name=\"Submitano\" value='$ac'></td>

然后在我使用的另一个结果页面上:

$s1=$_POST['Submitano'].$_POST['query'];

问题是当我单击相关的提交按钮时,它会通过选择的正确 POST ['Submitano'](即 $aa 或 $ac),但它总是通过最后一个查询 - $query3 而不是查询附在提交中。(即 $aa 应该通过 $query1,但它通过 $query3)

我怀疑这与我单击提交时有关,它提交的是 ['Submitano'] 而不是 ['query'],所以下一页只是选择最后输入的查询。如果是这样,谁能建议我如何通过 1 次提交发布两位数据(一位隐藏,一位可见)?

希望这是有道理的。

谢谢

保罗


感谢所有的评论。这就是我想要做的,但也许我应该以完全不同的方式来做?

屏幕 1 – 3 – 用户在每个页面上选择一个传递给屏幕 4 的变量。

屏幕 4 – 上述 3 个变量被读取并输入 25 个预设的 Mysql 查询并运行(即查询 1、查询 2 等),但每个查询的元素略有不同,因此产生 25 个不同的答案。

这 25 个查询的结果存储在 25 个变量 $aa、$ab 等中。

设置了一个表单来显示这 25 个查询的结果,每个答案都显示在一个提交按钮中。(即在我编码'Value=$aa'的地方,用户可以看到该查询的答案,即'73',然后单击它)。

(用户基本上需要在前3页根据自己的选择看到25个不同的答案,然后再选择自己想了解的答案。)

第 5 页 - 此页面需要知道用户单击了哪个按钮,但更重要的是他们选择了哪个查询,但我的问题是它只提供值,而不是生成该值的前面的查询。

关于以不同的方式命名每一个,我试过了,但问题是如何在第 5 页上找到它。我认为我需要 25 个预设的 $_POST?问题在于它不喜欢其他 24 个未使用的 $_POST。我什至尝试将它们放在 elseif 循环中,但没有任何乐趣。

但是,答案是否存在于这个解决方案中?

另外,有几个人建议使用阵列,但由于我对阵列不太感兴趣,我不确定他们将如何解决问题?

如果数组是答案,那么有关设置的更多信息或更具体地说,我如何在第 5 页上提取正确的信息会很棒吗?

再次感谢。

保罗

4

4 回答 4

3

他们不应该有相同的名字。由于它们的形式相同,因此最后一个值会覆盖其他值。

如果您只有这六个项目,您还可以将它们包装成三种不同的形式以使其工作。

于 2012-08-13T23:14:14.773 回答
0

您应该以数组的形式命名您的元素:

<input type="text" name="query[]" value="whatever" />

提交按钮的情况与下一页使用相同索引的情况相同。

编辑:如果您的要求是从多个屏幕收集数据,我建议您使用$_SESSION变量。http://php.net/manual/en/book.session.php

于 2012-08-13T23:57:04.507 回答
0

名称应该是唯一的。由于您所有的隐藏输入都被命名为“查询”,因此只有最后一个被提交。

于 2012-08-13T23:16:35.913 回答
0

您的表单项具有相同的名称。这将意味着它们的值有效地“覆盖”彼此。根据浏览器,第一个或最后一个值将被发布到您的页面。

要修复它,您可以:

1)给他们不同的名字。

<input type=\"submit\" name=\"Submitano1\" value='$aa'>
<input type=\"submit\" name=\"Submitano2\" value='$aa'>
<input type=\"submit\" name=\"Submitano3\" value='$aa'>

2) 将它们命名为数组。

<input type=\"submit\" name=\"Submitano[]\" value='$aa'>
<input type=\"submit\" name=\"Submitano[]\" value='$aa'>
<input type=\"submit\" name=\"Submitano[]\" value='$aa'>

第二个选项将允许您访问 $_POST['Submitano'][0] (以及 1 和 2),这会将所有 Submitano 项目放入一个数组中。如果您使用大量这些物品,则第二种方法会更有帮助。

如果需要,有关您正在做什么的更多信息将有助于提供更具体的建议。

于 2012-08-13T23:21:01.900 回答