0

これにはかなりの数の質問がありますが、私の状況を完全に説明しているものはありません。

使いやすさと、サイトの Google 検索インデックス作成を支援するために、ラジオ ボタンのセクションを、フォームを送信してページを変更するハイパーリンクに変更したいと考えています。

私の暫定的なコードはこのようなものですが、うまくいきません。これはフォームをサーバーに送信しますか? ちなみに、サーバー言語としてpython、テンプレート化にはjinja2でGoogleアプリエンジンを使用しています。

<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 について最初に学んだことの 1 つを忘れていました。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
4

2 に答える 2

1

なぜあなたは POST の使用を主張するのですか? SEOが気になる投稿フォームは、実際には対象ページのSEO品質を低下させてしまいます。get リクエストを使用して、引数をクエリ文字列としてサーバー側に渡すことができます。フォームを投稿する必要はなく、渡された変数をターゲット スクリプトで取得して使用することもできます。たとえば、呼び出しにより、http://stackoverflow.com/posts?foo=bar&baz=qux2 つの変数をサーバー側に渡すことができます。処理スクリプトでは、以下を読むことができます:

foo = bar
baz = qux

それでも POST リクエストを行うと主張する場合は、javascript でこれを処理する必要があります。「javascriptフォーム投稿」で検索してみてください

于 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 に答える