简体   繁体   English

在Rails中单击Submit_tag之后呈现部分

[英]Render a partial after submit_tag is clicked in Rails

I understand how to render a partial when clicking a normal link, simply use :remote, however I am having trouble rendering a partial when my search form is submitted via the submit_tag. 我了解如何在单击常规链接时呈现部分内容,只需使用:remote,但是当我通过Submit_tag提交搜索表单时,我却无法呈现部分内容。

This is my code in index.html.erb 这是我在index.html.erb中的代码

<%= form_tag(transports_path, :method => "get", id: "search-form" ) do %>

<%= select_tag "searchfrom", options_for_select(airport_names, params[:searchfrom]), :prompt => "Select From" %>
<%= select_tag "searchto", options_for_select(airport_names, params[:searchto]), :prompt => "Select To" %>

<%= submit_tag "Search" %>
<% end %>

<%= render :partial => 'transports/transports' %>

I want to render the transports/transports partial after the submit_tag is clicked, and I also don't want to transform it into a link_to link. 我想在单击submit_tag之后使传输/传输部分呈现,而且我也不想将其转换为link_to链接。

allow me to explain on the answer section since it is probably not too short. 请允许我在答案部分进行解释,因为它可能不太短。

Correct, when submit from form you send those searchfrom and searchto params to controller right to be query ingredients. 正确,从表单提交时,您会将那些searchfromsearchto参数发送给控制器权限以作为查询成分。 Then return in js format from Controller , something like: 然后从Controller返回js格式,如下所示:

respond_to do |format|
  format.js
end

Then add create new type of return file like create.js.erb , contain something like: 然后添加创建新类型的返回文件,例如create.js.erb ,其中包含以下内容:

$("#transports_list ").html("<%= escape_javascript(render 'transports/transports') %>");

But please correct me, so long when my last RoR coding :P 但是,请纠正我,直到我最后的RoR编码很久了:P

This method is so old, but more or less the concept can fulfilling your question, this blog may help you to understand what I thought. 这个方法已经很老了,但是这个概念或多或少可以满足您的问题,这个博客可以帮助您理解我的想法。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM