带有干净URL查询的HTML5表单搜索输入?

时间:2017-02-24 05:43:12

标签: php html html5 laravel octobercms

我有一个搜索输入表单。

<form action="/search">
    <input type="search" name="tags">
    <button type="submit">Search</button>
</form>

它会生成这样的网址

localhost:8888/search?tags=galaxy

如何让它生成干净的网址

localhost:8888/search/galaxy/

对于具有分隔符的多个关键字

localhost:8888/search?tags=galaxy+stars+space

localhost:8888/search?tags=galaxy%2C+stars%2C+space

这样我就不需要解析查询了,因为我的CMS已经使用了干净的URL,它会重定向到正确的结果。它不必是type =“search”,任何可以根据用户输入重定向到干净URL的输入。

1 个答案:

答案 0 :(得分:0)

这里有几个选项

1-您将数据发布到服务器,没有显示任何URL,然后服务器返回一个干净的URL。

public function search(Request $request)
{
    $tags = $request->tags;
    return redirect()->to('search/' . $tags); //I assumed only one tag was passed
}

通过此,您可以向用户显示干净的URL。并在有多个标签时添加额外的逻辑。

2-在提交时使用Javascript onclick来重写网址

<input type="search" name="tags">
<input type="submit" onclick="window.location.href=this.form.action + this.form.q.value;" />
<!--/search/tags-->