0

关于这个有很多问题,但没有一个能完全描述我的情况。

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

我的暂定代码是这样的,但还没有完全通过。这会向服务器提交表单吗?顺便说一句,我使用 google app engine 和 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>

Python

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

2 回答 2

1

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

foo = bar
baz = qux

如果您仍然坚持发出 POST 请求,则应使用 javascript 处理此问题。尝试搜索“javascript form post”

于 2012-06-28T23:00:16.887 回答
0

您将需要使用 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>
于 2012-06-28T23:33:08.267 回答