2016-09-19 55 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

相關問題