0

単純なテキストボックスの更新などの簡単な操作に Sinatra で ajax を使用する方法を知っています。単に 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

ビューファイル(たとえば、ここではスリムを使用します):

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 に答える