0

現在、私は次のように取り組んでいます:

<form action="/user/" method="get">
<input type="text" name="" id="" size="20" value="">
<input type="submit" value="Search">
</form>

しかし、これは次の場所にリダイレクトされます。次の場所/user/?=searchterm
にリダイレクトしたいの/user/searchterm
ですが、これは簡単だとわかっていますが、わかりません。

編集:私が不明確だった場合。入力したパラメーターをフォームで使用し、ブラウザーを /user/(parameter) にリダイレクトするようにしたい

4

4 に答える 4

2

通常のHTMLでは実行できません(実行すべきではありません!)。JavaScriptを使用して、フォームの送信を偽造する必要があります(検索語に従ってリンクにリダイレクトし、URLの書き換えを使用して正しい$_GET変数のアドレスを指すようにします)。

于 2012-04-19T20:05:31.083 に答える
2

これを行うには、2 つのオプションがあります。

  1. 送信後にユーザーを正しいページにリダイレクトします (PHP を使用した例):

    HTML

    <form action="/usersearch/" method="post">
      <input type="text" name="user" id="" size="20" value="">
      <input type="submit" value="Search">
    </form>
    

    PHP

    if (!isset($_REQUEST['user'])) {
        header('Location: http://example.com/search'); //redirect back to search page
        exit();
    }
    
    header('Location: http://example.com/user/' . $_REQUEST['user']);
    exit();
    
  2. javascript を使用して送信とリダイレクトをキャプチャします (私は怠惰な ATM なので jQuery を使用していますが、バニラ JS でも可能です)。

    ​(function($) {
        $('form').submit(function() {
            window.location = "http://example.com/user/" + $('input[name="user"]', this).val();
    
            return false;
        });
    })(jQuery)​
    
于 2012-04-19T20:30:37.800 に答える
0

「/user/?=searchterm」を「/user/searchterm」に変更するのは困難です。「/user/q=searchterm」を「/user/searchterm」に変更するのは、.htaccess ファイルまたは mod-rewrite を使用する方が簡単です。
クエリ文字列は常に「?q=a」の形式にする必要があります。'?=a' の形式にするのはあまり意味がありません。

于 2012-04-19T20:32:24.370 に答える
0

これを変える:

<form action="/user/" method="get">

これに:

<form action="/user/" method="post">

を使用するgetと、値が URL に追加されます。値を使用postすると、URL に追加されません。

編集:質問を読み間違えました...

なぜそれをしたいのかわかりません。リンクがページリンクのように機能しますが、とにかく、Apacheを使用している場合はmod_rewriteを使用することをお勧めします。ここには別の質問があり、役立つかもしれない良い答えがあります。値が必要なだけです

https://stackoverflow.com/a/4674388/1076164

于 2012-04-19T19:53:08.940 に答える