Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/search/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/elixir/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/asp.net-mvc-3/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Search 在永久布局(app.html.eex)中创建搜索栏_Search_Elixir_Phoenix Framework - Fatal编程技术网

Search 在永久布局(app.html.eex)中创建搜索栏

Search 在永久布局(app.html.eex)中创建搜索栏,search,elixir,phoenix-framework,Search,Elixir,Phoenix Framework,在Phoenix框架中,如何在app.html.eex模板中创建搜索栏,这让我感到非常困难。由于无论您在网站上的哪个位置,该区域都不会改变,因此我更希望它只需使用带有搜索参数的HTML get请求,如下所示: <%= button "Search", to: "/search/^search_parameter", method: "get", class: "btn" %> <div class="search"> <%= text_input :searc

在Phoenix框架中,如何在app.html.eex模板中创建搜索栏,这让我感到非常困难。由于无论您在网站上的哪个位置,该区域都不会改变,因此我更希望它只需使用带有搜索参数的HTML get请求,如下所示:

<%= button "Search", to: "/search/^search_parameter", method: "get", class: "btn" %>
<div class="search">
  <%= text_input :search, :query, placeholder: "Type search query here.." %>
  <%= button "Search", to: "/search/^search_query", method: "get", class: "btn" %>
</div>

但是,我不知道如何将变量放入to:字符串中。这段代码显然不起作用,但我想是这样的:

<%= button "Search", to: "/search/^search_parameter", method: "get", class: "btn" %>
<div class="search">
  <%= text_input :search, :query, placeholder: "Type search query here.." %>
  <%= button "Search", to: "/search/^search_query", method: "get", class: "btn" %>
</div>


我几乎不知道最好的方法是什么,我只是尝试一下。因此,任何解决方案都是受欢迎的。

如果您想根据用户输入更改搜索表单的URL,则需要使用Javascript。然而,我认为更好的方法是只使用一个标准形式,让您的搜索操作接受POST参数

路线应该是

# web/router.ex

post "/search", SearchController, :index
表单应该是这样的

# web/templates/layout/app.html.eex

<%= form_for @conn, search_path(@conn, :index), [name: :search], fn f -> %>
  <%= text_input f, :query %>
  <%= submit "Search" %>
<% end %>

如果愿意,您可以保留原始路线和操作,以支持这两种方法。

谢谢您的帮助,这正是我想要的。我自己做这件事时遇到了问题,因为我收到的“搜索路径”无法找到。当我这样做时,索引的方法参数都是错误的:)