2016-11-23 4 views
0

Я это ДивЗамена содержимого 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

Что вы хотите сказать? – scrappedcola

ответ

0

У Rails есть способ справиться с этим без записи функций щелчка и вызовов $ ajax. Измените ссылку так, что рельсы знает, что вы хотите, чтобы отправить запрос AJAX, добавив :remote => true:

<%= 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>, указав ему идентификатор на этой странице (чтобы быть извлеченным), затем выполните простой запрос ajax для загрузки содержимого.

    $ ('# currentdiv'). Load ('page.asp #div_to_load');

Она будет загружать содержимое #div_to_load с другой страницы в #currentdiv текущей страницы.

Смежные вопросы