Php Mod Rewrite和search查询字符串
要搜索内容,用户需要使用以下URL:Php Mod Rewrite和search查询字符串,php,forms,input,request,rewrite,Php,Forms,Input,Request,Rewrite,要搜索内容,用户需要使用以下URL: http://.../results/query/something http://.../results/query/something 我得到了文本输入,用户在其中键入要发布的字符串,但它看起来如下所示: http://.../results/query/?query=something 我试图更改“post方法”类型,但没有带来任何好结果。我怎么能这么做,所以看起来是这样的 函数go(){ var query=document.getEleme
http://.../results/query/something
http://.../results/query/something
我得到了文本输入,用户在其中键入要发布的字符串,但它看起来如下所示:
http://.../results/query/?query=something
我试图更改“post方法”类型,但没有带来任何好结果。我怎么能这么做,所以看起来是这样的
函数go(){
var query=document.getElementById('query')。值;
document.getElementById('myform')。action='0http://yourdomain/results/query/“+查询;
}
简单答案:
- 使用
method=“post”
- 在表单发布后,使用PHP构建URL,使用
和对值的任何其他适当清理urlencode()
- 重定向到所需的页面
你不能用PHP来做这件事(除非你想重定向),JS非常适合这个目的。嗯,很好,但是我怎么能用JS来做呢?发布了一个示例作为答案,OFC将“yourdomain”更改为你的域。
<form id="myform" method="post" action="/">
<input type="text" id="query" name="query" />
<input type="submit" name="submit" onclick="return go();" />
</form>
<script type="text/javascript">
function go(){
var query = document.getElementById('query').value;
document.getElementById('myform').action = 'http://yourdomain/results/query/'+query;
}
</script>
$query = isset($_POST['query']) ? urlencode($_POST['query']) : '';
header("Location: results/query/$query");