制作超链接 同时提交一些表单信息

make a hyperlink also submit some form information

本文关键字:表单 信息 提交 超链接      更新时间:2023-09-26
有很多

关于这个问题的问题,但没有一个描述我的情况。

为了便于使用并帮助Google对我的网站的搜索索引,我想将单选按钮的一部分更改为提交表单以及更改页面的超链接。

我的暂定代码是这样的,但还没有完全通过。 这会向服务器提交表单吗? 顺便说一下,我正在使用谷歌应用程序引擎,将python作为服务器语言,jinja2用于模板。

<ul>
  <form name="myForm">
    <li><a href="/air/skydiving"><input type="hidden1" name="foo1" value="bar1">Skydiving</a></li>
    <li><a href="/air/paragliding"><input type="hidden" name="foo2" value="bar2">Paragliding</a></li>
    <li><a href="/air/hanggliding"><input type="hidden" name="foo3" value="bar3">hang gliding</a></li>
    <li><a href="/air/basejumping"><input type="hidden" name="foo4" value="bar4">base jumping</a></li>
   </form>
</ul>

更新:所以我意识到这是一个糟糕的问题,我忘记了我学到的关于HTML的第一件事。 我需要使用 GET 请求将一些参数发送到我的 python 服务器脚本,以便它处理其余部分。 这是我正在使用的代码:

.HTML:

<ul>
    <li><a href="/air?s=1">Skydiving</a></li>
    <li><a href="/air?s=2">Paragliding</a></li>
    <li><a href="/air?s=3">Hang Gliding</a></li>
    <li><a href="/air?s=4">Base Jumping</a></li>
    <li><a href="/air?s=5">Balloons</a></li>
</ul>

s = webapp2.request.get('s')
if s ==1:
    #do what I want with this one
elif s == 2:
    #same on down the line

你为什么坚持使用 POST?如果您担心SEO发布表单实际上会降低目标页面的SEO质量。您可以使用 get 请求将参数作为查询字符串传递给服务器端。您无需发布表单,仍然可以在目标脚本中获取传递的变量并使用它们。例如,通过调用http://stackoverflow.com/posts?foo=bar&baz=qux您可以将 2 个变量传递给服务器端。在处理脚本中,您可以读取:

foo = bar
baz = qux

如果你仍然坚持发出POST请求,你应该用javascript来处理这个问题。尝试搜索"javascript form post"

你需要使用 JavaScript 来完成这个目的。我也会重组一些东西。这是我认为您正在寻找的最终解决方案(使用 jQuery):

JavaScript

$(document).ready(function () {
    $("form > li > a").click(function () { $(this).parent().parent().submit(); });
});

.HTML

<form name="myForm" method="POST" action="/air/skydiving">
    <input type="hidden" name="foo" value="bar1" />
    <li><a href="javascript:;">Skydiving</a></li>
</form>
<form name="myForm2" method="POST" action="/air/paragliding">
    <input type="hidden" name="foo" value="bar2" />
    <li><a href="javascript:;">Paragliding</a></li>
</form>
<form name="myForm3" method="POST" action="/air/hanggliding">
    <input type="hidden" name="foo" value="bar3" />
    <li><a href="javascript:;">hang gliding</a></li>
</form>
<form name="myForm4" method="POST" action="/air/basejumping">
    <input type="hidden" name="foo" value="bar3" />
    <li><a href="javascript:;">base jumping</a></li>
</form>