在保留获取变量的同时发布表单

时间:2009-09-30 04:43:40

标签: php forms post get

这看起来很简单,但我不记得我以前是怎么做过的。

使用PHP我发布了一个来自mysite.com/?x=y的表单,并希望生成的页面为mysite.com/?x=y&formx=formy ...

我尝试过的选项并没有给出理想的结果:

操作 - 设置action="?x=y"会清除get变量,如果method="get"代替表单中的那些变量。还需要事先了解get变量。

方法 - 虽然设置method="get"似乎合乎逻辑,但这会传递表单变量,但会清除所有放置的操作。设置method="post"会保留当前的get变量,但不会添加表单变量/值。

隐藏字段 - 所有获取变量/值都可以位于method="get"的隐藏字段中。如果存在大量变量或形式,这需要获得变量的先验知识和大量重复。 到目前为止,这是最接近的解决方案。

2 个答案:

答案 0 :(得分:2)

只需将表单的“方法”属性设置为“获取”而不是“发布”。

示例:

<form action="?x=y" method="get">
<input type="text" name="query" size="20">
<input type="submit" name="submit" value="Go">
</form>

答案 1 :(得分:2)

我想你可以:

  • 将这些变量作为<input type="hidden" name="x" vaue="y" />传递给您的表单。
  • 或者,也许这可能会有效:对于您的表单使用“mysite.com/?x=y”作为action:运气好的话,这些参数会在浏览器发布您的表单时保留 - 您应该尝试,但它可能会奏效。

当然,如果您希望这些参数显示在目标网页的网址中,则必须使用GET method作为表单。