当前位置: 首页 > 面试题库 >

使用AJAX(不是表单)更新Rails 3部分

公西星文
2023-03-14
问题内容

提交表单后,我发现了许多有关使用Ajax更新部分内容的问题和答案。但是我的问题是“更简单”,我只想每隔几秒钟重新加载一部分并加载新数据。这真的一点都不困难,我记得在Rails
2.3中做了类似的事情,但是我找不到任何答案。

基本上,我有一个show.html.erb渲染部分,像这样:

<div id="latest_post">
    <%= render :partial=>'info/latest', :object=>@user, :as=>:user %>
</div>

位于app / views / info / _latest的部分文件

<% post = user.posts.last %>
<h1>Last Post</h1>
<p><%= post.content %></p>

我只希望last_post div每30秒更新一次。请帮忙!


问题答案:

好吧,答案很复杂:

第1步:使用Javascript setInterval函数和jQuery
$.get()函数加载页面,例如/users/1/posts/latest

setInterval(function(){
  $.get("/users/1/posts/latest.js", function(data){
    $("latest_post").html(data);
  },
  "html")
}, 30000);

第2步:创建一个latest.js.erb并将其放在您的app/views/posts文件夹中。

内容latest.js.erb

<%= render partial: 'posts/latest', object: @user.posts.last, as: :post %>

第3步:使用所需的内容创建上述的局部文件(如果不需要局部文件,则可以将div的全部内容写入latest.js.erb文件中。)

第4步:在中添加一个最新方法PostsController,该方法定义@user等等,latest.js.erb以供使用。

第5步:添加get '/latest'到您的routes.rb



 类似资料:
  • 我在应用程序中呈现某些数据时遇到一些问题。为了简单起见,我有一个h:form,它包含一个在tbody中带有ui:repeat的表。让我们举个例子(我没有把所有的代码都放进去,因为它太长了): 我的问题是,每次保存时,它都会完整地呈现表单,当我的表包含许多行时(你知道,每次保存时加载一个页面需要花费大约10秒以上的时间),这会导致性能问题。有没有办法这样做?它将只渲染我当前正在编辑的行? 我不知道问

  • 问题内容: 我找到了一个自动提交表单数据的教程,但我要做的就是添加一个提交按钮以将数据传递给ajax。 我的目标是创建一个具有多个输入的表单,当用户单击“提交”按钮时,它将通过ajax发送并更新页面,而无需重新加载页面。另外,另一个关键是将所有输入发布到数组中的方式,以便在运行更新脚本时,输入字段中的名称属性与数据库中的列匹配。 我想我接近了。我已经搜索过,但没有找到确切的解决方案。提前致谢。 u

  • 问题内容: 我需要有关ajax的帮助。我想更新一个php文件,它将更新数据库。我有一个表格,它将选中的复选框发送到一个php文件,然后更新数据库。我想用ajax做到这一点,但我为此感到挣扎。我知道如何通过Ajax 更新HTML元素,但是无法解决。 HTML脚本 PHP updateDB.php 我希望此更新无需刷新页面。 问题答案: 我只想要一些建议,首先您的html页面代码应该喜欢- 现在我转向

  • 在这里,我创建了一个表http://jsbin.com/ojanaji/13/edit和demo:http://jsbin.com/ojanaji/13 因此,当用户单击表上的某些行时,可以自动将表中的值填充到模式窗口中。当点击按钮“编辑行”时,用户打开模式窗口。现在我需要知道如何用列更新mysql表:姓名、性别、年龄、吃过的甜甜圈。 我创建js Ajax: HTML模式窗口和按钮: 那么我现在如

  • 问题内容: 我已经阅读了一些有关我的问题的信息,但仍然没有得到正确的答案。我尝试了.on()方法仍然无法正常工作。我正在使用Laravel。 JS 加载页面后,我想要的所有东西都可以正常工作,但是当我使用replaceWith()方法更新元素,然后onclick无法正常工作时。 我检查了更新的html和属性,所有这些都在正确的位置。 问题答案: 您需要使用事件委托:- 因此更改::- 至::- 所

  • 我想使用Ajax更新数据,下面是示例代码。SweetAlert被移位,因为它已经更新了,但是它在数据库中没有生效,因此它给出了一个错误。 这是在单击submit按钮时提交表单的Ajax脚本。 这段代码用于php服务器端,用于将数据插入数据库。