【问题标题】:Replacing content of a div with AJAX用 AJAX 替换 div 的内容
【发布时间】:2016-11-23 18:52:51
【问题描述】:

我有这个 div

<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 的先前内容并从 job_applicants 的视图加载新的 html,但它像新页面一样加载它。我该怎么做?

这是我正在使用的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;
    } 
});

【问题讨论】:

  • 你有什么问题?

标签: javascript jquery ruby-on-rails ajax ruby-on-rails-4


【解决方案1】:

Rails 有一种方法来处理这个问题,而无需编写点击函数和 $ajax 调用。更改您的链接,以便 rails 知道您要通过添加 :remote =&gt; 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}))%>")

【讨论】:

    【解决方案2】:
    • 1 ,来自另一个页面的数据,正在加载到您称之为 &lt;div class="right-content"&gt; 的 '整个页面'。

    • 2 ,您可以在该页面上放置一个 &lt;div&gt; 给它一个 id(要获取),然后发出一个简单的 ajax 请求来加载内容。

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

    它将#div_to_load的内容从另一个页面加载到您当前页面的#currentdiv

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-03-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多