2016-09-19 28 views
0

我有一个隐藏的div,在用户从我的postgres数据库运行搜索后能够显示。但我遇到的问题是div显示第一个搜索结果,并且不会为后续搜索更新。它只是固定在第一个搜索结果上。我需要添加哪些jquery代码,以便搜索结果反映新搜索?我希望这看起来像传统的搜索引擎,它在一开始就是空白的,但在新的搜索条目中不断更新。另外,当我删除`return false;'时它只是闪烁一秒钟的结果,但不会保留在页面上。删除隐藏的表格并发布新的搜索结果内容

HTML搜索

<%=search_form_for @search, url: user_path(current_user) do |f| %> 
<div class="actions" id="search"><%= f.submit "Search" %></div> 

jQuery的

$(document).ready(function(){ 
     $('#search').on('click', function(event) {   
      $('#results').removeAttr("style") 
      return false; 
     }); 
    }); 

HTML DIV

<div id='results' style="display: none;"> 
<table> 
    <tr> 
    <th><%= sort_link @search, :Plan_Name, "Plan Name" %></th> 
    <th><%= sort_link @search, :Filing_Method, "Filing Method" %></th> 
    <th><%= sort_link @search, :Participants, "Participants" %></th> 
    <th><%= sort_link @search, :Filing_Type, "Filing Type" %></th> 
</tr> 
</div> 

回答

0

首先添加 “远程:真正的” SE

<%=search_form_for @search, url: user_path(current_user), remote: true do |f| %> 
<div class="actions" id="search"><%= f.submit "Search" %></div> 

添加一个div到搜索与搜索结果的ID进行用户视图:

<div id='search-results'></div> <!-- This will be the div where your table of results is appended --> 

然后,添加一个名为“文件拟合到您的形式,以便它通过AJAX提交user_search.js.erb”的用户里面查看文件夹下面一行:

$("#search-results").html("<%=escape_javascript(render 'search_results')%>").hide().fadeIn(900); 

然后添加一个名为‘_search_results.html.erb’的搜索是在同一个视图文件夹文件(这是你的那部分将被显示搜索时。确保保持领先的'_')。在该文件中添加你的成绩表:

<div id='results' style="display: none;"> 
<table> 
    <tr> 
    <th><%= sort_link @search, :Plan_Name, "Plan Name" %></th> 
    <th><%= sort_link @search, :Filing_Method, "Filing Method" %></th> 
    <th><%= sort_link @search, :Participants, "Participants" %></th> 
    <th><%= sort_link @search, :Filing_Type, "Filing Type" %></th> 
</tr> 
</div> 

然后添加到您的路由文件:

get 'user_search', to: users#user_search, as: 'user_search' 
在用户控制器添加

然后:

def user_search 
    @results = WhateverModelQueryYouHave 
    respond_to do |format| 
    format.html {} 
    format.js { } #This is basically saying call for user_search.js.erb 
    end 
end 

您还可以删除jQuery的你原本有。

+0

谢谢bkunzi01。一个关于user_search方法的问题。 @results = WhateverModelQueryYouHave,我不清楚我应该用什么语法替换WhateverModelQueryYouHave。我正在寻找一种名为'五'的模型,并使用搜索宝石设置了此搜索器。 – BlueDevilPride

+0

嘿,基本上你只需要为你的结果设置一个实例变量,这样你就可以在你的视图中访问它们。无论结果如何,您只需将ransack gem返回给您的视图(通常通过设置@results所示的实例变量)。 – bkunzi01

+0

感谢您的帮助bkunzi01,但我只是无法得到这个工作。现在,当我搜索时,它什么都不做。我会回去再看一遍,看看我能否弄清楚。感谢你的帮助。 – BlueDevilPride

相关问题