重定向到/ user /“searchterm”的简单搜索/

时间:2012-04-19 19:46:37

标签: html forms

目前我正在使用:

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

但是,这会重定向到/user/?=searchterm
我希望它重定向到/user/searchterm
我知道这很容易我只是想不出来。

编辑:如果我不清楚。我希望表单使用输入的参数并将浏览器重定向到/ user /(参数)

4 个答案:

答案 0 :(得分:2)

它不能(也不应该!)在常规HTML中完成。您需要使用 JavaScript 伪造表单提交(通过根据搜索字词重定向到链接,并使用 URL重写来指向正确的$_GET变量地址)。

答案 1 :(得分: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)​
    

答案 2 :(得分:0)

改变这个:

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

To This:

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

通过使用get,值将添加到URL中。使用post时,值不会添加到网址中。

编辑: 误读了问题......

我不确定你为什么要这样做,它会使链接行为有点像页面链接,但无论如何,如果您使用的是Apache,我建议使用mod_rewrite。还有一个问题,这里有一个可能有帮助的好答案。您只需要具有值

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

答案 3 :(得分:0)

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