目前我正在使用:
<form action="/user/" method="get">
<input type="text" name="" id="" size="20" value="">
<input type="submit" value="Search">
</form>
但是,这会重定向到/user/?=searchterm
我希望它重定向到/user/searchterm
我知道这很容易我只是想不出来。
答案 0 :(得分:2)
它不能(也不应该!)在常规HTML中完成。您需要使用 JavaScript 来伪造表单提交(通过根据搜索字词重定向到链接,并使用 URL重写来指向正确的$_GET
变量地址)。
答案 1 :(得分:2)
您可以选择两种方法。
在提交到正确的页面后重定向用户(使用PHP的示例):
<form action="/usersearch/" method="post">
<input type="text" name="user" id="" size="20" value="">
<input type="submit" value="Search">
</form>
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();
使用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。还有一个问题,这里有一个可能有帮助的好答案。您只需要具有值
答案 3 :(得分:0)
将'/ user /?= searchterm'更改为'/ user / searchterm'很难;使用.htaccess文件或mod-rewrite将'/ user / q = searchterm'更改为'/ user / searchterm'更容易。
查询字符串应始终采用'?q = a'格式;以“?= a”的格式使用它没有多大意义。