2012-06-02 95 views
0

我想作以下複選框,單選按鈕調用「更新」法在我listings_controllercheckbox_tag在Rails應用HTML表格 - 使用AJAX來更新模型

如何做到這一點?我已經將表格中的元素編碼在我的表格中,但我如何讓他們發送參數?我想使用AJAX從哪裏開始?

<%= stylesheet_link_tag 'listings' %> 
    <h1>Listing listings</h1> 
    <table class="datatable"> 
    <tr id="heading" > 
    <th >id</th> 
    <th >name</th> 
    </tr> 

    <% @listings.each do |listing| %> 
     <tr id="body"> 
    <th><%=listing.id%></th> 
     <th><%= link_to listing.name, edit_listing_path(listing) %></th> 

    #How can I have the following invoke the update method in AJAX format 
    <td><%= radio_button_tag(:keep, "Keep") %> 
     <%= label_tag(:keep, "Keep") %></td> 
    <td><%= radio_button_tag(:keep, "Delete") %> 
     <%= label_tag(:keep, "Delete") %></td> 
    <td><%= check_box_tag(:checked) %> 
     <%= label_tag(:checked, "checked") %></td> 
    <td><%= check_box_tag(:collected) %> 
     <%= label_tag(:collected, "collected") %></td> 
    <td><%= check_box_tag(:digitized) %> 
     <%= label_tag(:digitized, "digitized") %></td> 
    <td><%= check_box_tag(:in_database) %> 
     <%= label_tag(:in_database, "in database") %></td> 
     </tr> 
    <% end %> 
</table> 
<br /> 
<%= link_to 'New Listing', new_listing_path %> 

非常感謝。

回答

1

你需要的非常模糊,但肯定使用jQuery。進入app/assets/javascripts/listings.js.coffee並嘗試以下操作。

$('input.some_class').bind('update', -> 
    $.post('/listings/update', { param1: value, param2: value ... }, (data) -> 
    alert('updated!') 

或只是簡單的JavaScript(app/assets/javascripts/listings.js

$('input.some_class').bind('update', function() { 
    $.post('/listings/update', { param1: value, param2: value ... }, function(data) { 
    alert('updated!'); 
    }); 
}); 
  • 給你的複選框,單選按鈕等一些類名
  • 填寫您要發送的數據的相應字段(在列表控制器中的updates方法所接受的數據)
  • 將適當的回撥代碼(而不是alert('updated!'),你甚至可以放什麼都沒有)

但是,你的需求有點含糊,我希望這是一個很好的起點。在嘗試將AJAX整合到您的項目之前,我會推薦學習jQuery和可能的coffeescript。你可以稍微調整一下以利用:remote => true,但那是另一回事。

+0

你能爲此建議一個教程。我試圖找到一個與表格「與模型交談」中的複選框 - 感謝 – banditKing

+0

對於教程,您的要求太過瑣碎,因爲它是AJAX可以覆蓋的東西類型。花一點時間學習jQuery和AJAX請求,你就需要這些知識才能繼續。 –

+0

好的非常感謝:) – banditKing