繁体   English   中英

PHP表单值提交查询

[英]PHP Form Value Submit Query

我希望这是一件很简单的事我错过或做得不好。

它涉及从表单上的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's? 问题是它不喜欢其他24个未使用的$ _POST。 我甚至尝试将它们放在一个elseif循环中,但没有快乐。

但是,这个解决方案确实和答案在某种程度上?

另外,有几个人建议使用数组,但由于我对数组不太热,我不确定他们如何解决这个问题?

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

再次感谢。

保罗

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

如果您只有这六个项目,您可能还会以三种不同的形式将它们包装起来。

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

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

要修复它,您可以:

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项目放入一个数组中。 如果您使用大量这些项目,第二种方法会更有帮助。

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

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

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

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM