単純なテキストボックスの更新などの簡単な操作に Sinatra で ajax を使用する方法を知っています。単に ajax リクエストを送信し、success
イベントで必要なコンテンツを置き換える必要があります。私には明らかです。
しかし、ajax を使用して更新したいテーブルがある場合、どうすればよいでしょうか? で再びテーブルを「描画」するのは非常に困難ajax#success
です。それを達成するためのより簡単な方法が確かにあるはずです。
それは存在しますか?
最も効率的な方法ではありませんが、テーブルの完成した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);
});