0

我确实知道如何将 ajax 与 Sinatra 一起用于琐碎的操作,例如更新一个简单的文本框或类似的东西:我只需要发送一个 ajax 请求并替换我想要的success事件内容。这对我来说很清楚。

但是,当我有一个要使用 ajax 更新的表时,我该怎么办?在 .上再次“绘制”表格将非常困难ajax#success。当然应该有更简单的方法来实现这一点。

它存在吗?

4

1 回答 1

2

这不是最有效的方法,但您可以将表格的完整 HTML 部分返回给 Ajax-Request,并使用您返回的结果更新页面上的 Div-Container。在大多数情况下,这是最简单的方法:只需交换 div 的内容。

示例代码

sinatra 主文件中的操作:

# some code
post "/path/to/your/action" do
  # get the parameters you need and do the update operation, then:
  @goods = Good.all # if you use activerecord, or use what you want to get the list
  slim :goods_table # or haml or erb or ...
end
# some code

您的视图文件(例如,我将在这里使用 slim):

table
  tr
    th title
    th price
    th weight
    th discount
  - @goods.each do |good|
    th
      td = good.title
      td = good.price
      td = good.weight
      td = good.discount

我假设你的表被放置在一个 id 为“goods-table”的 div 中。所以带有 jquery 的 JS 会是这样的:

$.post("path/to/your/action", {parameter1: x, paramater2: y}, function (data) {
  $("#goods-table").html(data);
});
于 2013-01-09T13:23:40.457 回答