【问题标题】:HTML Form submission with GET and extra arguments带有 GET 和额外参数的 HTML 表单提交
【发布时间】:2012-03-04 20:51:50
【问题描述】:

这是我的情况,我有一个页面,上面有一个表格。表单只是一个查询,所以我使用“GET”方法。我有一个作为令牌传递的变量,该变量的格式为“x = 2&y = 5”,因为该变量作为编码的url传递到我的页面中,将其解析为字典只是额外的工作{'x':2,'y':5}。理想的情况如下:

<form method="GET" action="/path/to/action/?x=2&y=5">
    <input type="text" name="some_other_val">
    ... more inputs here etc.
</form>

不幸的是,当我这样做时,浏览器会删除结尾的 x=2&y=5 并且只是将表单字段作为参数附加。我不只是使用&lt;input type="hidden" name="x" value="2"&gt; 的原因是因为就像我说的字符串已经是那种形式,我需要专门对其进行解码。将值添加到操作 url 的末尾更简单。任何建议将不胜感激。请注意,我在这里找到了一个非常相似的主题adding URL parameters to a form PHP HTML,但所提出的解决方案都没有解决我的基本问题。我还尝试了在末尾附加“&”的提示,但它也不起作用!有没有可能做我想做的事?

【问题讨论】:

  • 如果您让我们知道您使用什么语言呈现页面,我们或许可以建议一个函数来帮助您进行所需的 URL 解析。
  • 我在 python 2.7 上使用 python django 1.3。
  • 查看urlparse模块中的parse_qs函数:docs.python.org/library/urlparse.html#urlparse.parse_qs
  • 谢谢!这正是我所需要的!

标签: python html django forms submission


【解决方案1】:

应该使用隐藏的表单元素作为您所描述的额外参数:

<input type="hidden" id="x" value="2" />
<input type="hidden" id="y" value="5" />

这可确保在使用 GET 时参数将正确显示在 URL 上,而不是被删除。

我不太明白你反对它们的论点,好像你可以将它们附加到表单操作中,你应该能够轻松地将其更改为 hidden 表单元素。

【讨论】:

  • 它对我不起作用(Django 1.8)。我必须使用name,而不是id 才能使其工作:&lt;input type="hidden" name="x" value="2" /&gt;
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-09-17
  • 2021-12-20
  • 2013-04-24
  • 2014-08-10
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多