2017-02-24 43 views
0

我有一个搜索输入表单。HTML5表单搜索用干净的URL查询输入?

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

它会产生这样的

localhost:8888/search?tags=galaxy 

一个网址我怎样才能使它产生清洁的url

localhost:8888/search/galaxy/ 

并与separaters

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

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

这样多个关键字我不需要解析q uery,因为我的CMS已经使用干净的URL,它将重定向到正确的结果。它不必是type =“search”,任何可以根据用户输入重定向到干净网址的输入。

+0

你使用任何框架的URL? –

+0

@EhsanIlahi Laravel与OctoberCMS。 –

+0

您可能需要执行以下操作:http://stackoverflow.com/a/39849708/1144627除非我误解了您的问题。由于表单操作在呈现页面后是静态的,并且不使用客户端编程就不能真正改变。由于表单动作决定了客户端导航到的URL。 – fyrye

回答

0

你有几个选择这里

1 - 将数据发送到服务器,任何URL diplayed,那么服务器会返回一个干净的URL。

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

由此,您可以向用户显示干净的URL。当有多个标签时,添加额外的logique。

2 - 使用JavaScript onclick上提交改写

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