我有一个 Listing#index 页面,其中显示 50 个列表。我想要一个“更多”按钮来触发 javascript 查询我的 MySql 数据库以获取其他列表,然后附加到现有 50 个列表而不刷新页面。
我该怎么办?我正在使用 Rails 和 jQuery。我了解 Rails,但对 Javascript 很陌生。
非常感谢您的帮助。
最佳答案
有很多方法可以解决这个问题。
1 您可以渲染一个“...js.erb”模板,该模板将使用附加方法(http://api.jquery.com/append/)或其他操作逻辑执行一些 jquery 代码。不要忘记为按钮设置 :remote 属性。我认为这种方法对您来说是最简单的。
例如:
在 Controller 中:
def get_posts
@posts.all # or something you need
render "_get_posts.js.erb"
end
_get_posts.js.erb:
<% @posts.each do |post| %>
$('#posts').append("<%= post.title %>");
<% end %>
此外,在 js.erb 中,您可以渲染部分内容或执行您想要的操作。
2 将逻辑绑定(bind)到按钮的单击事件(http://api.jquery.com/click/),然后通过多种方式向服务器发送ajax查询(http://api.jquery.com/category/ajax/),然后渲染您选择的数据(json、html、xml),并在客户端的 ajax 回调函数中捕获它并附加到您的页面。
关于javascript - 使用 javascript 查询额外的 Rails 数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9346922/