2016-11-23 27 views
0

一個div的內容我有這個div更換與AJAX

<div class="right-content"> </div> 

我在其中加載所有我想通過AJAX來顯示數據。
我在它加載一些HTML它有像

<%= link_to job_applicants_path(j.id), :class => "applicants-link" do %> 
    <span class="badge"><%= cantSolic (j.id) %></span> 
<% end %> 

,當我點擊該鏈接,我想改掉正確的內容div的以前的內容,並從加載新的HTML鏈接job_applicants'視圖,但是它將其加載爲新頁面。我怎樣才能做到這一點?

這是我用JS:

$(".applicants-link").click(function(){ 
    var link = $(this); 
    var path = link.attr("href"); 
    if (path != null){ 
     $.ajax({ 
      url: path, 
      async: true, 
      success: function(result){ 
       $(".right-content").html(result); 
      }, 
      error: function(result){ 
       $(".right-content").html ("<h4>No se ha podido cargar la información solicitada. Intentelo más tarde.</h4>") 
      } 
     }) 
    return false; 
    } 
}); 
+0

10你的問題是什麼? – scrappedcola

回答

0

Rails有一種方法可以在不寫入點擊函數和$ ajax調用的情況下處理這個問題。更改您的鏈接,這樣的軌道知道要通過添加:remote => true發送一個Ajax請求:

<%= link_to job_applicants_path(j.id), :class => "applicants-link", :remote => true do %> 
<span class="badge"><%= cantSolic (j.id) %></span> 

然後在你的控制器(我假設job_applicants_path被路由到一個「秀」的行動在你的控制器)響應Ajax請求,並做具體到一個Ajax請求任何東西:

def show 
    #your logic for all requests types here 
    @some_variable = "abc123" 
    respond_to do |format| 
    format.html {} 
    format.js { #do any ajax specific stuff here } 
    end 
end 

Rails會然後發送文件show.js.erb的內容JS執行,所以你可以把這樣的事情在裏面:

$(".right-content").html("<%= escape_javascript(render(partial: 'name_of_your_partial_to_render', locals: { some_variable: @some_variable}))%>") 
0
  • 1,從另一個頁面傳來的數據,是越來越加載到<div class="right-content">你在呼喚它作爲 「整頁」 。 2,你可以放置一個<div>在該頁面上給它一個id(要獲取),然後做一個簡單的ajax請求來加載內容。

    $('#currentdiv')。load('page.asp #div_to_load');

它會的#div_to_load從另一個頁面中的內容加載到當前頁面的#currentdiv