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

您将有两种选择来执行此操作。

  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 来捕获提交和重定向(我使用 jQuery,因为我是懒惰的 ATM,但使用 vanilla 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

改变这个:

<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 回答
0

将 '/user/?=searchterm' 更改为 '/user/searchterm' 很难做到;使用 .htaccess 文件或 mod-rewrite 将 '/user/q=searchterm' 更改为 '/user/searchterm' 更容易。
查询字符串应始终采用格式 '?q=a'; 以 '?=a' 格式保存它没有多大意义。

于 2012-04-19T20:32:24.370 回答